Skip to content

Commit c8527d7

Browse files
committed
Merge pull request #140 from piotrtomiak/master
Asynchronous requests to Tern Server
2 parents c6622b9 + d790879 commit c8527d7

File tree

7 files changed

+67
-63
lines changed

7 files changed

+67
-63
lines changed

org.eclipse.angularjs.core/src/org/eclipse/angularjs/core/CustomAngularModulesRegistry.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@
3636
import tern.angular.protocol.completions.TernAngularCompletionsQuery;
3737
import tern.eclipse.ide.core.IIDETernProject;
3838
import tern.eclipse.ide.core.TernCorePlugin;
39-
import tern.server.ITernServer;
39+
import tern.server.protocol.IJSONObjectHelper;
4040
import tern.server.protocol.completions.ITernCompletionCollector;
41+
import tern.server.protocol.completions.TernCompletionProposalRec;
4142

4243
public class CustomAngularModulesRegistry extends
4344
AbstractAngularModulesRegistry implements IResourceChangeListener,
@@ -92,13 +93,11 @@ protected void refreshIfNeeded() {
9293
new ITernCompletionCollector() {
9394

9495
@Override
95-
public void addProposal(String name,
96-
String displayName, String type,
97-
String doc, String url, String origin,
98-
int start, int end, boolean isProperty,
99-
boolean isObjectKey, Object completion,
100-
ITernServer ternServer) {
101-
String moduleName = ternServer.getText(
96+
public void addProposal(
97+
TernCompletionProposalRec proposal,
98+
Object completion,
99+
IJSONObjectHelper jsonObjectHelper) {
100+
String moduleName = jsonObjectHelper.getText(
102101
completion, "module");
103102
if (!StringUtils.isEmpty(moduleName)) {
104103
tern.angular.modules.Module module = CustomAngularModulesRegistry.this
@@ -109,12 +108,12 @@ public void addProposal(String name,
109108
}
110109

111110
List<String> tagsName = new ArrayList<String>();
112-
String restrict = ternServer.getText(
111+
String restrict = jsonObjectHelper.getText(
113112
completion, "restrict");
114113
DirectiveValue directiveValue = DirectiveValue.none;
115-
new Directive(name, AngularType.model,
116-
null, tagsName, restrict,
117-
directiveValue, module);
114+
new Directive(proposal.name,
115+
AngularType.model, null, tagsName,
116+
restrict, directiveValue, module);
118117
}
119118

120119
}

org.eclipse.angularjs.core/src/org/eclipse/angularjs/core/Module.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
import tern.angular.protocol.definition.TernAngularDefinitionQuery;
1919
import tern.scriptpath.ITernScriptPath;
2020
import tern.server.ITernServer;
21+
import tern.server.protocol.IJSONObjectHelper;
2122
import tern.server.protocol.completions.ITernCompletionCollector;
23+
import tern.server.protocol.completions.TernCompletionProposalRec;
2224
import tern.server.protocol.definition.ITernDefinitionCollector;
2325

2426
public class Module extends BaseModel implements ITernCompletionCollector,
@@ -49,13 +51,11 @@ public Object[] getAngularElements() {
4951
}
5052

5153
@Override
52-
public void addProposal(String name, String displayName, String type,
53-
String doc, String url, String origin, int start, int end,
54-
boolean isProperty, boolean isObjectKey, Object completion,
55-
ITernServer ternServer) {
56-
AngularType angularType = AngularType.get(ternServer.getText(
54+
public void addProposal(TernCompletionProposalRec proposal,
55+
Object completion, IJSONObjectHelper jsonObjectHelper) {
56+
AngularType angularType = AngularType.get(jsonObjectHelper.getText(
5757
completion, "angularType"));
58-
elements.add(new AngularElement(name, angularType, Module.this));
58+
elements.add(new AngularElement(proposal.name, angularType, Module.this));
5959
}
6060

6161
@Override

org.eclipse.angularjs.core/src/org/eclipse/angularjs/core/ModulesFolder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
import tern.angular.protocol.completions.TernAngularCompletionsQuery;
1818
import tern.scriptpath.ITernScriptPath;
1919
import tern.server.ITernServer;
20+
import tern.server.protocol.IJSONObjectHelper;
2021
import tern.server.protocol.completions.ITernCompletionCollector;
22+
import tern.server.protocol.completions.TernCompletionProposalRec;
2123

2224
public class ModulesFolder extends BaseModel implements
2325
ITernCompletionCollector {
@@ -41,10 +43,8 @@ public Object[] getModules() {
4143
}
4244

4345
@Override
44-
public void addProposal(String name, String displayName, String type,
45-
String doc, String url, String origin, int start, int end,
46-
boolean isProperty, boolean isObjectKey, Object completion,
47-
ITernServer ternServer) {
48-
modules.add(new Module(name, getScriptPath()));
46+
public void addProposal(TernCompletionProposalRec proposal,
47+
Object completion, IJSONObjectHelper jsonObjectHelper) {
48+
modules.add(new Module(proposal.name, getScriptPath()));
4949
}
5050
}

org.eclipse.angularjs.ui/src/org/eclipse/angularjs/internal/ui/contentassist/JSAngularCompletionProposal.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
import org.eclipse.wst.xml.ui.internal.contentassist.XMLRelevanceConstants;
1616

1717
import tern.angular.AngularType;
18+
import tern.angular.protocol.completions.AngularCompletionProposalRec;
1819
import tern.eclipse.ide.ui.contentassist.JSTernCompletionProposal;
19-
import tern.server.ITernServer;
20+
import tern.server.protocol.IJSONObjectHelper;
2021

2122
/**
2223
* Extrends JavaScript Tern completion proposal to display "module" and
@@ -26,30 +27,30 @@
2627
public class JSAngularCompletionProposal extends JSTernCompletionProposal
2728
implements IRelevanceCompletionProposal {
2829

29-
private final ITernServer ternServer;
30+
private final IJSONObjectHelper jsonObjectHelper;
3031
private final Object completion;
3132

32-
public JSAngularCompletionProposal(String name, String type, String doc,
33-
String url, String origin, Object completion, ITernServer server,
34-
AngularType angularType, int startOffset) {
35-
super(name, type, doc, url, origin, startOffset, startOffset);
36-
this.ternServer = server;
33+
public JSAngularCompletionProposal(AngularCompletionProposalRec proposal,
34+
Object completion, IJSONObjectHelper jsonObjectHelper,
35+
AngularType angularType) {
36+
super(proposal);
37+
this.jsonObjectHelper = jsonObjectHelper;
3738
this.completion = completion;
3839
super.setTriggerCharacters(new char[] { '.' });
3940
}
4041

4142
@Override
4243
public String getAdditionalProposalInfo() {
43-
String module = ternServer.getText(completion, "module");
44-
String controller = ternServer.getText(completion, "controller");
44+
String module = jsonObjectHelper.getText(completion, "module");
45+
String controller = jsonObjectHelper.getText(completion, "controller");
4546
return HTMLAngularPrinter
4647
.getAngularInfo(this, null, module, controller);
4748
}
4849

4950
// @Override
5051
protected String getAdditionalProposalInfoTitle() {
51-
String module = ternServer.getText(completion, "module");
52-
String controller = ternServer.getText(completion, "controller");
52+
String module = jsonObjectHelper.getText(completion, "module");
53+
String controller = jsonObjectHelper.getText(completion, "controller");
5354

5455
StringBuilder title = new StringBuilder(getName());
5556
if (module != null || controller != null) {

org.eclipse.angularjs.ui/src/org/eclipse/angularjs/internal/ui/contentassist/MarkupAngularCompletionProposal.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414
import org.eclipse.swt.widgets.Shell;
1515

1616
import tern.angular.AngularType;
17+
import tern.angular.protocol.completions.AngularCompletionProposalRec;
1718
import tern.eclipse.ide.ui.TernUIPlugin;
1819
import tern.eclipse.jface.contentassist.TernCompletionProposal;
19-
import tern.server.ITernServer;
20+
import tern.server.protocol.IJSONObjectHelper;
2021

2122
/**
2223
* Extrends Tern completion proposal to display "module" and "controller"
@@ -25,23 +26,22 @@
2526
*/
2627
public class MarkupAngularCompletionProposal extends TernCompletionProposal {
2728

28-
private final ITernServer ternServer;
29+
private final IJSONObjectHelper jsonObjectHelper;
2930
private final Object completion;
3031

31-
public MarkupAngularCompletionProposal(String name, String type,
32-
String doc, String url, String origin, int start, int end,
33-
Object completion, ITernServer server, AngularType angularType,
34-
int startOffset) {
35-
super(name, type, doc, url, origin, startOffset, startOffset);
36-
this.ternServer = server;
32+
public MarkupAngularCompletionProposal(
33+
AngularCompletionProposalRec proposal, Object completion,
34+
IJSONObjectHelper jsonObjectHelper, AngularType angularType) {
35+
super(proposal);
36+
this.jsonObjectHelper = jsonObjectHelper;
3737
this.completion = completion;
3838
}
3939

4040
@Override
4141
public String getAdditionalProposalInfo() {
42-
String module = ternServer.getText(completion, "module");
43-
String controller = ternServer.getText(completion, "controller");
44-
AngularType angularType = AngularType.get(ternServer.getText(
42+
String module = jsonObjectHelper.getText(completion, "module");
43+
String controller = jsonObjectHelper.getText(completion, "controller");
44+
AngularType angularType = AngularType.get(jsonObjectHelper.getText(
4545
completion, "angularType"));
4646
return HTMLAngularPrinter.getAngularInfo(getType(), getName(), module,
4747
controller, angularType, super.getDoc(), getOrigin());

org.eclipse.angularjs.ui/src/org/eclipse/angularjs/internal/ui/taginfo/HTMLAngularTernTypeCollector.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@
1515
import tern.angular.AngularType;
1616
import tern.eclipse.ide.ui.hover.HTMLTernTypeCollector;
1717
import tern.server.ITernServer;
18+
import tern.server.protocol.IJSONObjectHelper;
1819
import tern.server.protocol.type.ITernTypeCollector;
1920

2021
/**
2122
* {@link ITernTypeCollector} implementation for HTML Angular type collector.
22-
*
23+
*
2324
*/
2425
public class HTMLAngularTernTypeCollector extends HTMLTernTypeCollector {
2526

@@ -28,11 +29,11 @@ public class HTMLAngularTernTypeCollector extends HTMLTernTypeCollector {
2829
@Override
2930
public void setType(String type, boolean guess, String name,
3031
String exprName, String doc, String url, String origin,
31-
Object object, ITernServer ternServer) {
32+
Object object, IJSONObjectHelper objectHelper) {
3233
if (name != null) {
33-
String module = ternServer.getText(object, "module");
34-
String controller = ternServer.getText(object, "controller");
35-
AngularType angularType = AngularType.get(ternServer.getText(
34+
String module = objectHelper.getText(object, "module");
35+
String controller = objectHelper.getText(object, "controller");
36+
AngularType angularType = AngularType.get(objectHelper.getText(
3637
object, "angularType"));
3738
this.info = HTMLAngularPrinter.getAngularInfo(type, name, module,
3839
controller, angularType, doc, origin);

org.eclipse.angularjs.ui/src/org/eclipse/angularjs/ui/contentassist/HTMLAngularTagsCompletionProposalComputer.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,15 @@
5757
import tern.angular.modules.IDirectiveParameterCollector;
5858
import tern.angular.modules.Restriction;
5959
import tern.angular.protocol.TernAngularQuery;
60+
import tern.angular.protocol.completions.AngularCompletionProposalRec;
6061
import tern.angular.protocol.completions.TernAngularCompletionsQuery;
6162
import tern.eclipse.ide.core.IIDETernProject;
6263
import tern.eclipse.ide.core.TernCorePlugin;
6364
import tern.eclipse.ide.core.resources.TernDocumentFile;
6465
import tern.scriptpath.ITernScriptPath;
65-
import tern.server.ITernServer;
66+
import tern.server.protocol.IJSONObjectHelper;
6667
import tern.server.protocol.completions.ITernCompletionCollector;
68+
import tern.server.protocol.completions.TernCompletionProposalRec;
6769

6870
/**
6971
* Completion in HTML editor for :
@@ -330,22 +332,20 @@ private void populateAngularProposals(
330332
ITernCompletionCollector collector = new ITernCompletionCollector() {
331333

332334
@Override
333-
public void addProposal(String name, String displayName,
334-
String type, String doc, String url, String origin,
335-
int start, int end, boolean isProperty,
336-
boolean isObjectKey, Object completion,
337-
ITernServer ternServer) {
335+
public void addProposal(TernCompletionProposalRec proposalItem,
336+
Object completion, IJSONObjectHelper jsonObjectHelper) {
338337
ICompletionProposal proposal = null;
339338
if (isModuleOrController(angularType)) {
340339

341340
MarkupAngularCompletionProposal markupPproposal = new MarkupAngularCompletionProposal(
342-
name, type, doc, url, origin, start, end,
343-
completion, ternServer, angularType,
344-
replacementOffset);
341+
new AngularCompletionProposalRec(proposalItem,
342+
replacementOffset), completion,
343+
jsonObjectHelper, angularType);
345344

346345
// in the case of "module", "controller" completion
347346
// the value must replace the existing value.
348-
String replacementString = "\"" + name + "\"";
347+
String replacementString = "\"" + proposalItem.name
348+
+ "\"";
349349
int replacementLength = contentAssistRequest
350350
.getReplacementLength();
351351
int cursorPosition = getCursorPositionForProposedText(replacementString) - 2;
@@ -357,9 +357,12 @@ public void addProposal(String name, String displayName,
357357
.getImage(angularType));
358358
proposal = markupPproposal;
359359
} else {
360-
proposal = new JSAngularCompletionProposal(name, type,
361-
doc, url, origin, completion, ternServer,
362-
angularType, replacementOffset - (end - start));
360+
proposal = new JSAngularCompletionProposal(
361+
new AngularCompletionProposalRec(
362+
proposalItem,
363+
replacementOffset
364+
- (proposalItem.end - proposalItem.start)),
365+
completion, jsonObjectHelper, angularType);
363366
}
364367
contentAssistRequest.addProposal(proposal);
365368

0 commit comments

Comments
 (0)