Skip to content

Commit

Permalink
fix #58807
Browse files Browse the repository at this point in the history
  • Loading branch information
jrieken committed Sep 18, 2018
1 parent 674c9d6 commit 43c2879
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ export class SnippetSuggestProvider implements ISuggestSupport {
return this._snippets.getSnippets(languageId).then(snippets => {

let suggestions: SnippetSuggestion[];
let shift = Math.max(0, position.column - 100);
let pos = { lineNumber: position.lineNumber, column: Math.max(1, position.column - 100) };
let lineOffsets: number[] = [];
let linePrefixLow = model.getLineContent(position.lineNumber).substr(Math.max(0, position.column - 100), position.column - 1).toLowerCase();
Expand Down Expand Up @@ -349,7 +350,8 @@ export class SnippetSuggestProvider implements ISuggestSupport {
} else {
let consumed = new Set<Snippet>();
suggestions = [];
for (const start of lineOffsets) {
for (let start of lineOffsets) {
start -= shift;
for (const snippet of snippets) {
if (!consumed.has(snippet) && matches(linePrefixLow, start, snippet.prefixLow, 0)) {
suggestions.push(new SnippetSuggestion(snippet, linePrefixLow.length - start));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,4 +247,22 @@ suite('SnippetsService', function () {
result = await provider.provideCompletionItems(model, new Position(1, 3), { triggerCharacter: '-', triggerKind: SuggestTriggerKind.TriggerCharacter });
assert.equal(result.suggestions.length, 1);
});

test('No snippets suggestion on long lines beyond character 100 #58807', async function () {
snippetService = new SimpleSnippetService([new Snippet(
['fooLang'],
'bug',
'bug',
'',
'second',
''
)]);

const provider = new SnippetSuggestProvider(modeService, snippetService);

let model = TextModel.createFromString('Thisisaverylonglinegoingwithmore100bcharactersandthismakesintellisensebecomea Thisisaverylonglinegoingwithmore100bcharactersandthismakesintellisensebecomea b', undefined, modeService.getLanguageIdentifier('fooLang'));
let result = await provider.provideCompletionItems(model, new Position(1, 158), suggestContext);

assert.equal(result.suggestions.length, 1);
});
});

0 comments on commit 43c2879

Please sign in to comment.