{"action":"opened","issue":{"url":"https://api.github.com/repos/Microsoft/vscode/issues/13735","repository_url":"https://api.github.com/repos/Microsoft/vscode","labels_url":"https://api.github.com/repos/Microsoft/vscode/issues/13735/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/vscode/issues/13735/comments","events_url":"https://api.github.com/repos/Microsoft/vscode/issues/13735/events","html_url":"https://github.com/Microsoft/vscode/issues/13735","id":182982783,"number":13735,"title":"[completion] CompletionList#isIncomplete ignored on empty or fully filtered items","user":{"login":"svenefftinge","id":372735,"avatar_url":"https://avatars.githubusercontent.com/u/372735?v=3","gravatar_id":"","url":"https://api.github.com/users/svenefftinge","html_url":"https://github.com/svenefftinge","followers_url":"https://api.github.com/users/svenefftinge/followers","following_url":"https://api.github.com/users/svenefftinge/following{/other_user}","gists_url":"https://api.github.com/users/svenefftinge/gists{/gist_id}","starred_url":"https://api.github.com/users/svenefftinge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/svenefftinge/subscriptions","organizations_url":"https://api.github.com/users/svenefftinge/orgs","repos_url":"https://api.github.com/users/svenefftinge/repos","events_url":"https://api.github.com/users/svenefftinge/events{/privacy}","received_events_url":"https://api.github.com/users/svenefftinge/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-10-14T07:37:08Z","updated_at":"2016-10-14T07:37:08Z","closed_at":null,"body":"- VSCode Version: 1.6.1\r\n\r\nWhen a CompletionList returns an empty array of items but has set `isIncomplete: true`, the content proposal provider is not asked again.\r\n\r\nI think it is because\r\n https://github.com/Microsoft/vscode/blob/master/src/vs/editor/contrib/suggest/common/completionModel.ts#L167\r\nis not reached if no item exists or all items are filtered.\r\n\r\nIs this intentional?\r\n\r\nIt can be reproduced easily with monaco's playground: \r\nhttps://microsoft.github.io/monaco-editor/playground.html#extending-language-services-completion-provider-example\r\n\r\nPaste the following snippet into it:\r\n\r\n```\r\nfunction createDependencyProposals(contents) {\r\n    if (contents.length%4 === 0) {\r\n        return {\r\n            isIncomplete: true,\r\n            items: []\r\n        }\r\n    }\r\n    return {\r\n        isIncomplete: true,\r\n        items: [\r\n            {\r\n                label: contents + \"!!\",\r\n                kind: monaco.languages.CompletionItemKind.Function,\r\n                documentation: contents + \"!!\",\r\n                insertText: contents + \"!!\"\r\n            }\r\n        ]\r\n    };\r\n}\r\n\r\n\r\nmonaco.languages.registerCompletionItemProvider('json', {\r\n    provideCompletionItems: function(model, position) {\r\n        // find out if we are completing a property in the 'dependencies' object.\r\n        var textUntilPosition = model.getValueInRange({startLineNumber: 1, startColumn: 1, endLineNumber: position.lineNumber, endColumn: position.column});\r\n        return createDependencyProposals(textUntilPosition);\r\n    }\r\n});\r\n\r\nmonaco.editor.create(document.getElementById(\"container\"), {\r\n    value: \"\",\r\n    language: \"json\"\r\n});\r\n```\r\n"}}
{"actor":{"display_login":"svenefftinge"}}