提交 b51019b5 编写于 作者: J Johannes Rieken

debt - remove duplicated code

上级 4ae7d630
......@@ -495,7 +495,7 @@ function isUpperCaseAtPos(pos: number, word: string, wordLow: string): boolean {
return word[pos] !== wordLow[pos];
}
function isPatternInWord(patternLow: string, patternPos: number, patternLen: number, wordLow: string, wordPos: number, wordLen: number): boolean {
export function isPatternInWord(patternLow: string, patternPos: number, patternLen: number, wordLow: string, wordPos: number, wordLen: number): boolean {
while (patternPos < patternLen && wordPos < wordLen) {
if (patternLow[patternPos] === wordLow[wordPos]) {
patternPos += 1;
......
......@@ -14,6 +14,7 @@ import { SnippetParser } from 'vs/editor/contrib/snippet/snippetParser';
import { localize } from 'vs/nls';
import { ISnippetsService } from 'vs/workbench/contrib/snippets/browser/snippets.contribution';
import { Snippet, SnippetSource } from 'vs/workbench/contrib/snippets/browser/snippetsFile';
import { isPatternInWord } from 'vs/base/common/filters';
export class SnippetCompletion implements CompletionItem {
......@@ -49,16 +50,6 @@ export class SnippetCompletion implements CompletionItem {
}
}
export function matches(pattern: string, patternStart: number, word: string, wordStart: number): boolean {
while (patternStart < pattern.length && wordStart < word.length) {
if (pattern[patternStart] === word[wordStart]) {
patternStart += 1;
}
wordStart += 1;
}
return patternStart === pattern.length;
}
export class SnippetCompletionProvider implements CompletionItemProvider {
private static readonly _maxPrefix = 10000;
......@@ -120,7 +111,7 @@ export class SnippetCompletionProvider implements CompletionItemProvider {
suggestions = [];
for (let start of lineOffsets) {
availableSnippets.forEach(snippet => {
if (matches(linePrefixLow, start, snippet.prefixLow, 0)) {
if (isPatternInWord(linePrefixLow, start, linePrefixLow.length, snippet.prefixLow, 0, snippet.prefixLow.length)) {
suggestions.push(new SnippetCompletion(snippet, Range.fromPositions(position.delta(0, -(linePrefixLow.length - start)), position)));
availableSnippets.delete(snippet);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册