TextEditor - 文本编辑器对象 @TextEditor


TextEditor:文本编辑器对象,为API hx.window.getActiveTextEditor() 返回值的详细说明文档。

TextEditor

TextEditor属性列表

属性名 属性类型 描述
document TextDocument 该编辑器关联的文档
selection TextSelection 当前光标选中的位置
selections Array<TextSelection> 当前多光标选中的位置集合
options TextEditorOptions 该编辑器的设置项

edit

修改当前编辑器打开的文档

参数说明

参数名称 参数类型 描述
callback Function(TextEditorEdit) 文档编辑操作回调

返回值

返回类型 描述
Promise<void> Promise

示例

  1. let editorPromise = hx.window.getActiveTextEditor();
  2. editorPromise.then(function(editor) {
  3. let selection = editor.selection;
  4. let document = editor.document;
  5. let word = document.getText(selection);
  6. let reversed = word.split('').reverse().join('');
  7. editor.edit(editBuilder => {
  8. editBuilder.replace(selection, reversed);
  9. });
  10. });

setSelection

设置主选择区域,该API会首先清除原来的光标选择,如果要使用多光标,请使用addSelection方法

参数说明

参数名称 参数类型 描述
active Number 选择区域中带光标的一侧,详情见下图
anchor Number 选择区域中不带光标的一侧,详情见下图

TextEditor - 文本编辑器对象 @TextEditor - 图1

返回值

返回类型 描述
Promise<void> Promise

示例

  1. let editor = hx.window.getActiveTextEditor();
  2. editor.then((editor)=>{
  3. editor.setSelection(10,12);
  4. })

addSelection

增加新的选择区域,调用后会在编辑器内追加一个新一个光标。

参数说明

参数名称 参数类型 描述
active Number 选择区域中带光标的一侧,详情见下图
anchor Number 选择区域中不带光标的一侧,详情见下图

TextEditor - 文本编辑器对象 @TextEditor - 图2

返回值

返回类型 描述
Promise<void> Promise

示例

  1. let editorPromise = hx.window.getActiveTextEditor();
  2. editorPromise.then((editor)=>{
  3. editor.setSelection(10,12).then(()=>{
  4. editor.addSelection(16,18);
  5. });
  6. })

TextDocument


编辑器打开的文档文件

属性列表

属性名 属性类型 描述
fileName String 文件名称
isDirty Boolean 是否是修改状态
isUntitled Boolean 是否是无标题文件
lineCount Number 文档总行数
uri Uri 文档的uri,如果是本地文件,可通过uri.fsPath获取本地文件路径
languageId String 编程语言Id,如’javascript’,’html’等,完整id列表参见这里
workspaceFolder WorkspaceFolder 该文档文件所属的项目对象

getText

获取指定区域内的文本

参数名称 参数类型 描述
range Range [可选]文本区域,如果不传该参数,则获取整个文档的内容

返回值

返回类型 描述
String 文本字符串

示例

  1. let activeEditor = hx.window.getActiveTextEditor();
  2. activeEditor.then(function(editor) {
  3. // 获取指定区域内的文本
  4. let text = editor.document.getText({
  5. start: 3755,
  6. end: 3802
  7. });
  8. console.log(text);
  9. });

lineAt

获取指定行号的行信息

参数名称 参数类型 描述
lineno Number 行号,从0开始

返回值

返回类型 描述
Promise<TextLine> 文本行对象

示例

  1. let activeEditor = hx.window.getActiveTextEditor();
  2. activeEditor.then(function(editor) {
  3. // 行号是从0开始
  4. let linePromise = editor.document.lineAt(2);
  5. linePromise.then((line)=>{
  6. console.log("TextLine is:", line.text);
  7. });
  8. });

lineFromPosition

根据光标位置获取光标所在行。

参数名称 参数类型 描述
pos Number 光标位置

返回值

返回类型 描述
Promise<TextLine> 文本行对象

示例

  1. let activeEditor = hx.window.getActiveTextEditor();
  2. activeEditor.then(function(editor) {
  3. let linePromise = editor.document.lineFromPosition(editor.selection.active);
  4. linePromise.then((line)=>{
  5. console.log("Line info:", line.text, "开始位置:", line.start, "结束位置:", line.end);
  6. });
  7. });

TextEdit


TextEdit: 文档编辑

TextEdit 属性列表

属性名 属性类型 描述
range Range 要修改的区域
newText String 要插入的新内容

replace static

参数说明

参数名称 参数类型 描述
range Range 要修改的区域
newText String 要插入的新内容

返回值

返回类型 描述
TextEdit 文档编辑对象

示例

  1. let activeEditor = hx.window.getActiveTextEditor();
  2. activeEditor.then(function(editor) {
  3. let selection = editor.selection;
  4. let word = editor.document.getText(selection);
  5. editor.edit(editBuilder => {
  6. // 把当前选中的内容由小写转换大写
  7. let toUpperCase = word.toUpperCase();
  8. editBuilder.replace(selection, toUpperCase);
  9. });
  10. });

Range

Range: 文本区域

属性列表

属性名 属性类型 描述
start Number 起始位置
end Number 结束位置

TextLine

TextLine: 文档中的某一行, 为editor.document.lineAteditor.document.lineFromPosition 返回值。

属性列表

属性名 属性类型 描述
start Number 行起始位置
end Number 行结束位置,不计算换行符
text String 行内容,不包含换行符