首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击获取摩纳哥编辑器CodeLens信息

点击获取摩纳哥编辑器CodeLens信息
EN

Stack Overflow用户
提问于 2018-05-05 10:40:30
回答 1查看 966关注 0票数 1

使用这个CodeLens提供程序示例作为起点,我一直试图弄清楚如何在单击链接时获取与CodeLens关联的范围信息。

代码语言:javascript
复制
var commandId = editor.addCommand(0, function() {
    // services available in `ctx`
    alert('my command is executing!');

}, '');

monaco.languages.registerCodeLensProvider('json', {
    provideCodeLenses: function(model, token) {
        return [
            {
                range: {
                    startLineNumber: 1,
                    startColumn: 1,
                    endLineNumber: 2,
                    endColumn: 1
                },
                id: "First Line",
                command: {
                    id: commandId,
                    title: "First Line"
                }
            }
        ];
    },
    resolveCodeLens: function(model, codeLens, token) {
        return codeLens;
    }
});

我不确定ctx的评论指的是什么。我尝试将它作为参数添加到addCommand中的匿名函数参数中,但我没有从中得到任何信息。甚至有可能获得provideCodeLenses函数中指定的范围信息吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-09 23:13:18

为了解决这个问题,我在返回的对象的arguments属性中添加了provideCodeLenses属性。

代码语言:javascript
复制
provideCodeLenses: function(model, token) {
    return [
        {
            range: {
                startLineNumber: 1,
                startColumn: 1,
                endLineNumber: 2,
                endColumn: 1
            },
            id: "First Line",
            command: {
                id: commandId,
                title: "First Line",
                arguments: { from: 1, to: 2 },
            }
        }
    ];
}

然后可以在addCommand匿名函数中访问它:

代码语言:javascript
复制
var commandId = editor.addCommand(0, function(ctx, args) {
    console.log(args); // { from: 1, to: 2 }
}, '');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50188534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档