VSCode - 具有自定义语言的 IntelliSense
VSCode - IntelliSense with custom languages
你好 VS Code 社区!
我目前正在使用自己的/自定义语言扩展 VS Code 编辑器。这比我想象的要容易,但现在我遇到了 IntelliSense 问题。
如您所见,VS Code 正在向我建议注释和字符串的内容,这对我来说是个大问题。
我对此没有经验,通过尝试学习 ;) 我想这与分词器有关,但我不知道如何指定/排除注释和变量值。
通常只建议声明的变量和给定的关键字
这里是相关代码:(仅供学习,无侵权之意)
/*---------------------------------------------------------
* 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');
}
是否有任何文档或有人可以向我解释如何将其从建议列表中排除?
编辑:
好的,我意识到您可以在 Def.js 中定义对象类型,因此没有必要在 Tests.js 中定义它们。但我的问题仍然存在。
由于目前没有编写自定义插件的文档,我们都通过逆向工程收集信息。
看看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);
});
你好 VS Code 社区!
我目前正在使用自己的/自定义语言扩展 VS Code 编辑器。这比我想象的要容易,但现在我遇到了 IntelliSense 问题。
如您所见,VS Code 正在向我建议注释和字符串的内容,这对我来说是个大问题。
我对此没有经验,通过尝试学习 ;) 我想这与分词器有关,但我不知道如何指定/排除注释和变量值。
通常只建议声明的变量和给定的关键字
这里是相关代码:(仅供学习,无侵权之意)
/*---------------------------------------------------------
* 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');
}
是否有任何文档或有人可以向我解释如何将其从建议列表中排除?
编辑: 好的,我意识到您可以在 Def.js 中定义对象类型,因此没有必要在 Tests.js 中定义它们。但我的问题仍然存在。
由于目前没有编写自定义插件的文档,我们都通过逆向工程收集信息。
看看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);
});