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 |
示例
let editorPromise = hx.window.getActiveTextEditor();editorPromise.then(function(editor) {let selection = editor.selection;let document = editor.document;let word = document.getText(selection);let reversed = word.split('').reverse().join('');editor.edit(editBuilder => {editBuilder.replace(selection, reversed);});});
setSelection
设置主选择区域,该API会首先清除原来的光标选择,如果要使用多光标,请使用addSelection方法
参数说明
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| active | Number | 选择区域中带光标的一侧,详情见下图 |
| anchor | Number | 选择区域中不带光标的一侧,详情见下图 |

返回值
| 返回类型 | 描述 |
|---|---|
| Promise<void> | Promise |
示例
let editor = hx.window.getActiveTextEditor();editor.then((editor)=>{editor.setSelection(10,12);})
addSelection
增加新的选择区域,调用后会在编辑器内追加一个新一个光标。
参数说明
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| active | Number | 选择区域中带光标的一侧,详情见下图 |
| anchor | Number | 选择区域中不带光标的一侧,详情见下图 |

返回值
| 返回类型 | 描述 |
|---|---|
| Promise<void> | Promise |
示例
let editorPromise = hx.window.getActiveTextEditor();editorPromise.then((editor)=>{editor.setSelection(10,12).then(()=>{editor.addSelection(16,18);});})
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 | 文本字符串 |
示例
let activeEditor = hx.window.getActiveTextEditor();activeEditor.then(function(editor) {// 获取指定区域内的文本let text = editor.document.getText({start: 3755,end: 3802});console.log(text);});
lineAt
获取指定行号的行信息
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| lineno | Number | 行号,从0开始 |
返回值
| 返回类型 | 描述 |
|---|---|
| Promise<TextLine> | 文本行对象 |
示例
let activeEditor = hx.window.getActiveTextEditor();activeEditor.then(function(editor) {// 行号是从0开始let linePromise = editor.document.lineAt(2);linePromise.then((line)=>{console.log("TextLine is:", line.text);});});
lineFromPosition
根据光标位置获取光标所在行。
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| pos | Number | 光标位置 |
返回值
| 返回类型 | 描述 |
|---|---|
| Promise<TextLine> | 文本行对象 |
示例
let activeEditor = hx.window.getActiveTextEditor();activeEditor.then(function(editor) {let linePromise = editor.document.lineFromPosition(editor.selection.active);linePromise.then((line)=>{console.log("Line info:", line.text, "开始位置:", line.start, "结束位置:", line.end);});});
TextEdit
TextEdit: 文档编辑
TextEdit 属性列表
| 属性名 | 属性类型 | 描述 |
|---|---|---|
| range | Range | 要修改的区域 |
| newText | String | 要插入的新内容 |
replace static
参数说明
| 参数名称 | 参数类型 | 描述 |
|---|---|---|
| range | Range | 要修改的区域 |
| newText | String | 要插入的新内容 |
返回值
| 返回类型 | 描述 |
|---|---|
| TextEdit | 文档编辑对象 |
示例
let activeEditor = hx.window.getActiveTextEditor();activeEditor.then(function(editor) {let selection = editor.selection;let word = editor.document.getText(selection);editor.edit(editBuilder => {// 把当前选中的内容由小写转换大写let toUpperCase = word.toUpperCase();editBuilder.replace(selection, toUpperCase);});});
Range
Range: 文本区域
属性列表
| 属性名 | 属性类型 | 描述 |
|---|---|---|
| start | Number | 起始位置 |
| end | Number | 结束位置 |
TextLine
TextLine: 文档中的某一行, 为editor.document.lineAt、editor.document.lineFromPosition 返回值。
属性列表
| 属性名 | 属性类型 | 描述 |
|---|---|---|
| start | Number | 行起始位置 |
| end | Number | 行结束位置,不计算换行符 |
| text | String | 行内容,不包含换行符 |
