Lines 145-157
Link Here
|
145 |
} |
145 |
} |
146 |
|
146 |
|
147 |
private Collection<? extends CompletionItem> getFilteredData( |
147 |
private Collection<? extends CompletionItem> getFilteredData( |
148 |
Collection<? extends CompletionItem> data, |
148 |
Collection<CodeTemplateCompletionItem> data, |
149 |
String prefix |
149 |
String prefix |
150 |
) { |
150 |
) { |
151 |
List<CompletionItem> ret = new ArrayList<CompletionItem>(); |
151 |
List<CompletionItem> ret = new ArrayList<CompletionItem>(); |
152 |
for (CompletionItem itm : data) { |
152 |
for (CodeTemplateCompletionItem itm : data) { |
153 |
if (itm.getInsertPrefix().toString().startsWith(prefix)) { |
153 |
//only filter by starting abbreviation prefix |
154 |
ret.add(itm); |
154 |
if (itm.getAbbreviation().startsWith(prefix)) { |
|
|
155 |
ret.add(itm); |
155 |
} |
156 |
} |
156 |
} |
157 |
} |
157 |
return ret; |
158 |
return ret; |
Lines 187-206
Link Here
|
187 |
queryCaretOffset = caretOffset; |
188 |
queryCaretOffset = caretOffset; |
188 |
queryAnchorOffset = (identifierBeforeCursor != null) ? caretOffset - identifierBeforeCursor.length() : caretOffset; |
189 |
queryAnchorOffset = (identifierBeforeCursor != null) ? caretOffset - identifierBeforeCursor.length() : caretOffset; |
189 |
if (langPath != null && identifierBeforeCursor != null) { |
190 |
if (langPath != null && identifierBeforeCursor != null) { |
190 |
String mimeType = DocumentUtilities.getMimeType(component); |
|
|
191 |
MimePath mimePath = mimeType == null ? MimePath.EMPTY : MimePath.get(mimeType); |
192 |
Preferences prefs = MimeLookup.getLookup(mimePath).lookup(Preferences.class); |
193 |
boolean ignoreCase = prefs.getBoolean(SimpleValueNames.COMPLETION_CASE_SENSITIVE, false); |
194 |
|
195 |
CodeTemplateManagerOperation op = CodeTemplateManagerOperation.get(MimePath.parse(langPath)); |
191 |
CodeTemplateManagerOperation op = CodeTemplateManagerOperation.get(MimePath.parse(langPath)); |
196 |
op.waitLoaded(); |
192 |
op.waitLoaded(); |
197 |
|
193 |
|
198 |
Collection<? extends CodeTemplate> cts = op.findByParametrizedText(identifierBeforeCursor, ignoreCase); |
194 |
//only filter by abbreviation |
|
|
195 |
Collection<? extends CodeTemplate> cts=op.findByAbbreviationPrefix(identifierBeforeCursor); |
199 |
Collection<? extends CodeTemplateFilter> filters = CodeTemplateManagerOperation.getTemplateFilters(component, queryAnchorOffset); |
196 |
Collection<? extends CodeTemplateFilter> filters = CodeTemplateManagerOperation.getTemplateFilters(component, queryAnchorOffset); |
200 |
|
197 |
|
201 |
queryResult = new ArrayList<CodeTemplateCompletionItem>(cts.size()); |
198 |
queryResult = new ArrayList<CodeTemplateCompletionItem>(cts.size()); |
202 |
for (CodeTemplate ct : cts) { |
199 |
for (CodeTemplate ct : cts) { |
203 |
if (ct.getContexts() != null && ct.getContexts().size() > 0 && accept(ct, filters)) { |
200 |
if (accept(ct, filters)) { |
204 |
queryResult.add(new CodeTemplateCompletionItem(ct)); |
201 |
queryResult.add(new CodeTemplateCompletionItem(ct)); |
205 |
} |
202 |
} |
206 |
} |
203 |
} |