gpt4 book ai didi

angularjs - 大写的 ACE 编辑器自动完成关键字

转载 作者:行者123 更新时间:2023-12-05 04:14:19 26 4
gpt4 key购买 nike

我有一个 ACE 编辑器,带有自定义高亮模式,基于 sql 模式,一切正常,但我定义的关键字是大写的,当自动完成器显示可用选项时,它们都是小写的。

我检查了旧的 sql 模式(在我修改之前),行为完全相同。

有什么方法可以将这个选项转换为大写吗?

我已经审查了这个question ,但我一直无法找到一种方法来做到这一点。我还尝试将所有 toLowerCase() 函数删除到 ext-language-tools.js 中,但仍然以小写形式显示选项。

谢谢!

最佳答案

这是一个使用自定义完成器的干净解决方案:

const customKeyWordCompleter = {
getCompletions(editor, session, pos, prefix, callback) {
if (session.$mode.completer) {
return session.$mode.completer.getCompletions(editor, session, pos, prefix, callback);
}
const state = editor.session.getState(pos.row);
let keywordCompletions;
if (prefix === prefix.toUpperCase()) {
keywordCompletions = session.$mode.getCompletions(state, session, pos, prefix);
keywordCompletions = keywordCompletions.map((obj) => {
const copy = obj;
copy.value = obj.value.toUpperCase();
return copy;
});
} else {
keywordCompletions = session.$mode.getCompletions(state, session, pos, prefix);
}
return callback(null, keywordCompletions);
},
};

this.editor.completers = [
customKeyWordCompleter,
customCompleter,
];

关于angularjs - 大写的 ACE 编辑器自动完成关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35183311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com