core
core copied to clipboard
[FEATURE] Intelligent Completion API 设计变更
为了更好的区分传统的代码补全和 Code Edits 相关的代码编辑补全(表现形式是 多行补全 或 智能重写) 两者在 API 的设计上需要做个区分,避免混淆
在之前的 API 当中,会将 “多行补全” 和 “传统代码补全” 都写在同一个 provider 里,仅仅只是用 enableMultiLine
作为标识符来做区分
例:
registerIntelligentCompletionFeature(registry: IIntelligentCompletionsRegistry): void {
registry.registerIntelligentCompletionProvider(async (editor, position, bean, token) => {
// ...
return {
items: [
{
insertText
range,
},
],
enableMultiLine: true,
};
});
}
现在将弃用这种使用方式,具体变动如下
- registerIntelligentCompletionProvider 将进入 deprecated 阶段,并重命名为 registerInlineCompletionsProvider,删除 enableMultiLine 标识符,其余不变
- 新增 registerCodeEditsProvider,接管原先的多行补全逻辑,具体参数和返回值待补充