你好VS Code社区!
我目前正在使用自己的/自定义语言扩展VS Code编辑器。这比我想象的要容易,但现在我遇到了IntelliSense的问题。
正如您所看到的,VS Code建议我注释和字符串的内容,这对我来说是个大问题。
我对此缺乏经验并尝试学习;)我想这与tokenizer有关,但我不知道如何指定/排除注释和变量值。
通常只建议声明变量和给定的关键字
此处相关代码:(仅用于学习目的,不打算侵犯版权)
/*---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------*/
/// <reference path="../../declares.d.ts" />
'use strict';
define(["require", "exports", '../sqfDef', 'monaco-testing'], function (require, exports, languageDef, T) {
var tokenizationSupport = T.createTokenizationSupport(languageDef.language);
var tokenize = T.createTokenizeFromSupport(tokenizationSupport);
var assertTokens = T.assertTokens;
T.module('Syntax Highlighting - SQF');
}
&#13;
是否有任何文档或有人可以解释我,请如何将其从建议列表中排除?
编辑: 好的,我意识到你可以在Def.js中定义对象类型,因此不需要在Tests.js中定义它们。但我的问题仍然存在。
答案 0 :(得分:1)
由于目前没有编写自定义插件的文档,我们都通过逆向工程收集信息。
看看resources\app\plugins\vs.language.typescript\features\suggestSupport.js
。在第10行中,您会找到this.excludeTokens = ['string', 'comment', 'numeric'];
。
因此,您需要编写自己的suggestSupport.js
并在languageMain.js
中注册。
您可以在第58行的resources\app\plugins\vs.language.typescript\typescriptMain.js
中找到一个示例:
var suggestSupport = new SuggestSupport(ctx, client);
monaco.Modes.SuggestSupport.register(MODE_ID, suggestSupport);
return Configuration.load(MODE_ID, ctx.configurationService).then(function (config) {
suggestSupport.setConfiguration(config);
});