如何指定要在 Ace 编辑器中自动完成的自定义标记列表?
How to specify a list of custom tokens to list for autocompletion in Ace Editor?
使用 Ace Editor, I have it working with react-ace 完成自动完成设置后。但是,我需要在内置自动完成列表中提供一些自定义标记。
react-ace
的存储库将这些属性定义为
enableBasicAutocompletion: PropTypes.oneOfType([PropTypes.bool, PropTypes.array]),
enableLiveAutocompletion: PropTypes.oneOfType([PropTypes.bool, PropTypes.array]),
但这 array
是什么?
我已经尝试设置 enableBasicAutocompletion={ ['custom'] }
和 enableBasicAutocompletion={ [ (...args) => console.log(args) ] }
,但都失败了,并出现关于 getCompletions not a function
的错误。
如何将这些自定义自动完成关键字添加到列表中?
<AceEditor
name={ this.uniqueName }
mode="javascript"
theme="github"
onChange={ onChange }
enableBasicAutocompletion
enableLiveAutocompletion
/>
使用editor.completers数组来添加一个新的补全returns你想要的补全
editor.completers.push({
getCompletions: function(editor, session, pos, prefix, callback) {
var completions = [];
// we can use session and pos here to decide what we are going to show
["word1", "word2"].forEach(function(w) {
completions.push({
value: w,
meta: "my completion",
});
});
callback(null, completions);
}
})
只需导入这个!
import "ace-builds/src-noconflict/ext-language_tools"
并在你的渲染函数中写入这段代码
<AceEditor
mode="java"
theme="github"
onChange={onChange}
name="UNIQUE_ID_OF_DIV"
editorProps={{ $blockScrolling: true }}
setOptions={{
enableBasicAutocompletion: true,
enableLiveAutocompletion: true,
enableSnippets: true
}}
使用 Ace Editor, I have it working with react-ace 完成自动完成设置后。但是,我需要在内置自动完成列表中提供一些自定义标记。
react-ace
的存储库将这些属性定义为
enableBasicAutocompletion: PropTypes.oneOfType([PropTypes.bool, PropTypes.array]),
enableLiveAutocompletion: PropTypes.oneOfType([PropTypes.bool, PropTypes.array]),
但这 array
是什么?
我已经尝试设置 enableBasicAutocompletion={ ['custom'] }
和 enableBasicAutocompletion={ [ (...args) => console.log(args) ] }
,但都失败了,并出现关于 getCompletions not a function
的错误。
如何将这些自定义自动完成关键字添加到列表中?
<AceEditor
name={ this.uniqueName }
mode="javascript"
theme="github"
onChange={ onChange }
enableBasicAutocompletion
enableLiveAutocompletion
/>
使用editor.completers数组来添加一个新的补全returns你想要的补全
editor.completers.push({
getCompletions: function(editor, session, pos, prefix, callback) {
var completions = [];
// we can use session and pos here to decide what we are going to show
["word1", "word2"].forEach(function(w) {
completions.push({
value: w,
meta: "my completion",
});
});
callback(null, completions);
}
})
只需导入这个!
import "ace-builds/src-noconflict/ext-language_tools"
并在你的渲染函数中写入这段代码
<AceEditor
mode="java"
theme="github"
onChange={onChange}
name="UNIQUE_ID_OF_DIV"
editorProps={{ $blockScrolling: true }}
setOptions={{
enableBasicAutocompletion: true,
enableLiveAutocompletion: true,
enableSnippets: true
}}