首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用(.)触发两个不同的自定义自动补全程序ace编辑器中的句号和Ctrl_space

在ace编辑器中,可以通过使用.触发两个不同的自定义自动补全程序。下面是一种实现方式:

  1. 首先,需要在ace编辑器中注册两个自定义的自动补全程序。可以使用setCompleters方法来实现,该方法接受一个包含自动补全程序的数组作为参数。
代码语言:txt
复制
var editor = ace.edit("editor");

// 自定义自动补全程序1
var completer1 = {
  getCompletions: function(editor, session, pos, prefix, callback) {
    // 自定义自动补全逻辑1
    // ...
    // 返回自动补全结果
    callback(null, completions);
  }
};

// 自定义自动补全程序2
var completer2 = {
  getCompletions: function(editor, session, pos, prefix, callback) {
    // 自定义自动补全逻辑2
    // ...
    // 返回自动补全结果
    callback(null, completions);
  }
};

// 注册自动补全程序
editor.completers = [completer1, completer2];
  1. 接下来,需要监听.键的按下事件,并根据光标位置判断触发哪个自动补全程序。可以使用on("keydown")方法来实现。
代码语言:txt
复制
editor.on("keydown", function(e) {
  if (e.keyCode === 190 && e.getCompletions() === null) {
    var cursorPos = editor.getCursorPosition();
    var line = editor.session.getLine(cursorPos.row);
    var prefix = line.slice(0, cursorPos.column).split(/[^\w.$]+/).pop();

    // 根据光标位置判断触发哪个自动补全程序
    if (prefix === ".") {
      editor.execCommand("startAutocomplete");
    } else {
      editor.execCommand("startAutocomplete");
    }
  }
});

以上代码中,通过监听键盘按下事件,当按下.键时,获取光标位置和当前行的内容,提取出.之前的字符串作为前缀。然后根据前缀判断触发哪个自动补全程序,调用execCommand("startAutocomplete")方法触发自动补全。

需要注意的是,以上代码只是一种实现方式,具体的自动补全逻辑和触发方式可以根据实际需求进行调整。

相关搜索:如何在自动补全的ace编辑器中添加html?如何在React应用程序中为不同的页面使用自定义按钮和引导按钮?在React中,如何从不同组件的事件处理程序触发自定义按钮的单击事件?如何在使用自定义配置提供程序时触发.Net核心的IConfigurationProvider中的Set方法在我的meteor应用程序中,如何在两个不同的包中使用具有相同URL的两个不同的路由?如何使用google API在内部/自定义编辑器中打开和编辑共享的google文档?如何使用.findAll并从两个不同的表和一个自我引用中查找记录?如何使用Django中的Abstractuser类创建两个不同的用户(doctor和patient),以便他们都能执行自己的角色如何允许CommonJS程序从我的TypeScript库中导入,而无需使用require().default和文本编辑器中的自动完成功能如何在两个数据帧中使用不同的主键和外键列名在pandas中执行vlookup?如何从一个客户端用两个自定义打包程序解析JPOS中两种不同的iso格式?如何使用应用程序中的Intent打开Google地图并自动导航以显示两点之间的路径和距离如何在Django中自动填充和显示来自用户模型字段的数据到来自不同应用程序的另一个模型?我正在使用Reactjs nodejs开发一个应用程序。如何动态连接两个不同的数据库(mysql和couchbase如何使用Java GSS-API和Kerberos 5从单个Java客户端程序与两个不同的KDC服务器进行通信?如何在不使用IFrame的情况下将两个不同的Angular 2应用程序嵌入到另一个Angular 2应用程序中如何列出我可以添加到我的C#应用程序框架中的设备和ios,以便每次测试时都使用不同的Ios设备和Ios OS如何使用单个PostGreSQL,同时让两个在Google App Engine和Google App Engine中灵活运行的Django应用程序访问它当文件位于不同的文件夹中时,如何在nodeJS应用程序中使用concurently同时运行服务器和客户端如何使用Spring连接到两个不同的数据库,一个用于在同一应用程序中读取,另一个用于写入?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券