MonacoEditor 主动触发代码提示功能

MonacoEditor是微软提供的代码编辑器

vscode即是使用它作为编辑器。

它的开发语言是ts,可以嵌入到浏览器中。

代码提示或者说代码补全功能是我们经常需要定制的部分。

目前它提供的快捷键是ctrl+space,和win10以下的操作系统的默认中英文切换是冲突的。

检查源码发现,TriggerSuggestAction的触发快捷键已经写死:

        function TriggerSuggestAction() {
            return _super.call(this, {
                id: ‘editor.action.triggerSuggest‘,
                label: nls.localize(0, null),
                alias: ‘Trigger Suggest‘,
                precondition: contextkey_1.ContextKeyExpr.and(editorCommon_1.EditorContextKeys.Writable, editorCommon_1.ModeContextKeys.hasCompletionItemProvider),
                kbOpts: {
                    kbExpr: editorCommon_1.EditorContextKeys.TextFocus,
                    primary: 2048 /* CtrlCmd */ | 10 /* Space */,
                    mac: { primary: 256 /* WinCtrl */ | 10 /* Space */ }
                }
            }) || this;
        }

既然没法改快捷键,它的run方法实现如下:

        TriggerSuggestAction.prototype.run = function (accessor, editor) {
            SuggestController.get(editor).triggerSuggest();
        };

即是说,只要有办法调用这个triggerSuggest即可,但是SuggestControll而是个私有对象,要如何调用呢?

继续看源码:

        SuggestController.get = function (editor) {
            return editor.getContribution(SuggestController_1.ID);
        };
        SuggestController.prototype.getId = function () {
            return SuggestController_1.ID;
        };

    SuggestController.ID = ‘editor.contrib.suggestController‘;
    SuggestController = SuggestController_1 

可以得出结论

editor.getContribution(‘editor.contrib.suggestController‘).triggerSuggest

这个就是我们所需要的调用代码。

当然,还有一种更推荐的形式:

editor.trigger(‘随便写点儿啥‘, ‘editor.action.triggerSuggest‘, {});
时间: 2024-07-30 18:35:05

MonacoEditor 主动触发代码提示功能的相关文章

Linux Eclipse代码提示功能设置(Java & C/C++)

最近在Linux下开发,由于长期使用Visual Studio 2010,对代码提示功能情有独钟,现在在Linux下,使用Eclipse做开发,当然免不了怀念Visual Studio强悍的代码提示,于是在网上搜索了一些文章,整理出关于Eclipse代码提示功能设置的方法. Java: 增强Eclipse 的代码提示功能,具体怎么样来配置?下面开始说步骤: 1. 打开Eclipse,然后“window”→“Preferences” 2. 选择“java”,展开,“Editor”,选择“Conte

修改Eclipse与MyEclipse的代码提示功能

本文的目的是修改Eclipse与MyEclipse的代码提示功能,使之能够更加快速的帮助程序员编写代码. 本文使用的Eclipse版本为4.2 JUNO,MyEclipse的版本为10.6. 1. 设置代码自动完成提示的触发键 依次点击Window-->Preferences-->Java-->Editor-->Content Assist: "Auto activation triggers for Java" 指定当按下什么键时,会弹出代码提示.按照自己习惯

如何打开Eclipse代码提示功能

开启代码自动提示功能,首先找到设置提示符的位置: 打开 Eclipse  -> Window -> Perferences -> Java -> Editor -> Content Assist,在右边最下面一栏找到 auto-Activation ,下面有三个选项,找到第二个“Auto activation triggers for Java:”选项在其后的文本框中会看到一个“.”存在.这表示:只有输入“.”之后才会有代码提示和自动补全,我们要修改的地方就是这. 按说把该文

为Eclipse CDT添加自动代码提示功能

1.前言 在使用Eclipse CDT的过程中,如果要使用代码提示功能,有2种方法: 设置触发字符,输入这些字符后会自动触发代码提示 使用快捷键 ALT+/,手动触发该功能 方法1的设置方法如下图,可以设置 . -> :: 三种触发类型. 但是对于其他C/C++好用的IDE,这种方式显然有点弱,那么如何将它改造成全自动提示呢? 方法是修改CDT... 2.CDT开发环境搭建 本文的开发环境是Manjaro,需要安装git,maven yay -S git yay -S mavengit clon

MyEclipse设置代码提示功能

写代码的时候为什么能给我们提示?你知道提示分为手动提示和自动提示么?今天我们就以MyEclipse为例讲一下MyEclipse手动提示和自动提示如何设置. 在开始这篇博客之前,我们先来说一下代码的手动提示和自动提示.手动提示就是必须按某个快捷键出现提示内容:自动提示就是只要你敲代码就会自动出现提示内容.好了,有了这样一个前提,我们就开讲了. 手动提示: MyEclipse是自带手动代码提示功能的,其默认键是Alt+/,但是有时候由于MyEclipse快捷键设置冲突的问题,导致了快捷键无法使用.所

eclipse如何开启/关闭代码提示功能

把下面红色框中的勾勾选上就是使用代码提示功能,不选就是关闭. 版权声明:本文为博主原创文章,未经博主允许不得转载.

离线使用eclipse的代码提示功能

eclipse的代码提示默认是抓取oracle官方的在线java-docs,然后进行相应的处理实现的.可以自己下载与jdk版本对应的java-docs,然后对eclipse的配置进行修改,实现离线使用代码提示功能. 步骤: 1. 下载 Java SE Development Kit 8u45 Documentation和 JavaFX API Documentation 下载地址: http://www.oracle.com/technetwork/java/javase/documentati

jupyter notebook 安装代码提示功能

我的是在anaconda中的root环境下运行以下命令,在其他环境下发现没有效果 1 pip install jupyter_contrib_nbextensions jupyter contrib nbextension install  --user 2. pip install--user jupyter_nbextensions_configurator jupyter nbextensions_configurator enable --user 3.安装成功会在http://loca

netbeans代码提示功能设置

一.依次点击:菜单===>工具===>选项===>编辑器===>代码完成 语音选择Java.在"Java自动弹出式触发器A"中输入".qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM". 设置后,当在netbeans中按下任何字母或点时,都会弹出代码提示. 二.代码提示快捷键设置 依次点击:菜单===>工具===>选项===>快捷键映射===>在搜索中输入&quo