首页 > 解决方案 > Monaco Editor 获取插入符号的源代码索引

问题描述

有没有办法将插入符号位置作为源代码字符串中的索引?我知道我可以得到位置,这会给我一个包含行和列的对象,但是有没有办法获取或将行+列转换为字符串 char 索引?

例如,如果我有:

using System;
using System.Data;

我将插入符号放在“.Data”之前,我知道如何获取行 + col 坐标(第 1 行,第 13 行),但是如何获取 char 数组索引(应该是 25 之类的)?

标签: monaco-editor

解决方案


好的,不确定这是否是最好的方法,但以下似乎可以正常工作:

  1. 获取编辑器位置(行+列)。
  2. 获取文本直到该位置。
  3. 获取该文本的长度

这是一个示例代码:

var line = window.editor.getPosition().lineNumber;
var col = window.editor.getPosition().column;
var textUntilPosition = window.editor.model.getValueInRange({ startLineNumber: 1, startColumn: 1, endLineNumber: line, endColumn: col });
var currentPos = textUntilPosition.length;

推荐阅读