IStandaloneDiffEditor

aydk大约 9 分钟

IStandaloneDiffEditor

interface 官网地址open in new window

事件 Events

onDidChangeModel

  • 语法: onDidChangeModel: IEvent<void>
  • 参数: ``
  • 返回值: IEvent<void>
  • 描述: 更改差异模型时发出的事件(即差异编辑器显示新内容)。

onDidUpdateDiff

  • 语法: onDidUpdateDiff: IEvent<void>
  • 参数: ``
  • 返回值: IEvent<void>
  • 描述: 当对比信息计算发生变更时触发

onDidDispose

  • 语法: onDidDispose(listener: (() => void)): IDisposable
  • 参数:
    • listener: (() => void) (): void Returns void
  • 返回值: IDisposable
  • 描述: 当编辑器被释放时发出的事件

方法 Methods

addAction

  • 语法: addAction(descriptor: monaco.editor.IActionDescriptor): IDisposable;
  • 参数: monaco.editor.IActionDescriptor
  • 返回值: IDisposable对象
  • 描述: 用来向编辑器中添加自定义的操作。

其中,descriptor参数是一个对象,用来描述要添加的操作。它包含以下属性:

descriptor参数

id:操作的唯一标识符,必须是字符串类型。

label:操作的显示名称,必须是字符串类型。

keybindings:操作的快捷键,可以是字符串类型的快捷键,也可以是字符串类型的快捷键数组。

contextMenuGroupId:操作在右键菜单中的分组 ID,必须是字符串类型。

contextMenuOrder:操作在右键菜单中的排序位置,必须是数字类型。

run:操作的执行函数,必须是一个函数类型,接受一个 ICodeEditor类型的参数。

addAction方法返回一个 IDisposable对象,用来取消添加的操作。可以通过调用 dispose方法来取消添加的操作。 下面是一个示例,演示如何向编辑器中添加一个自定义的操作:

const editor = monaco.editor.create(document.getElementById('container'), {
    value: '',
    language: 'plaintext'
});

editor.addAction({
    id: 'my-custom-action',
    label: 'My Custom Action',
    keybindings: [
        monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_S
    ],
    contextMenuGroupId: 'navigation',
    contextMenuOrder: 1.5,
    run: function(ed) {
        console.log('My custom action executed');
    }
});

在这个示例中,我们创建了一个编辑器,并向它添加了一个名为 my-custom-action的自定义操作。这个操作的显示名称为 My Custom Action,快捷键为 Ctrl/Cmd + S,在右键菜单中的分组 ID 为 navigation,排序位置为 1.5。当这个操作被执行时,会在控制台输出相关信息。

addCommand

  • 语法: addCommand(keybinding: number, handler: ICommandHandler, context: string):string
  • 参数: keybindinghandlercontext
  • 返回值: IDisposable对象
  • 描述: 用来向编辑器中添加自定义的操作。

其中,keybinding 参数是一个对象,用来描述要添加的命令的快捷键。它包含以下属性:

  • ctrlCmd:是否按下了 Ctrl或 Cmd键,必须是布尔类型。
  • shift:是否按下了 Shift键,必须是布尔类型。
  • alt:是否按下了Alt键,必须是布尔类型。
  • keyCode:按下的键的键码,必须是数字类型。

handler 参数是一个函数,用来处理命令的执行逻辑。它接受一个 ICodeEditor类型的参数。

context参数是一个字符串,用来指定命令的上下文。可以是 editor、textarea 或 global中的一个。

addCommand方法返回一个字符串,表示添加的命令的 ID。可以通过调用 removeCommand方法来移除添加的命令。 下面是一个示例,演示如何向编辑器中添加一个自定义的命令:

const editor = monaco.editor.create(document.getElementById('container'), {
    value: '',
    language: 'plaintext'
});

editor.addCommand(monaco.KeyMod.CtrlCmd | monaco.KeyCode.KEY_S, function(ed) {
    console.log('Custom command executed');
}, 'editor');

在这个示例中,我们创建了一个编辑器,并向它添加了一个名为 Custom command的自定义命令。这个命令的快捷键为 Ctrl/Cmd + S,当这个命令被执行时,会在控制台输出相关信息。

createContextKey

  • 语法: createContextKey<T>(key: string, defaultValue: T): IContextKey<T>
  • 参数:
    • T extends ContextKeyValue = ContextKeyValue
  • 返回值: IContextKey<T>
  • 描述: ``

createDecorationsCollection

dispose

  • 语法: dispose(): void
  • 描述: 释放此小部件使用的所有资源。调用此方法后,小部件将不再被使用。

focus

  • 语法: focus(): void
  • 描述: 聚焦到此小部件上。

getContainerDomNode

  • 语法: getContainerDomNode(): HTMLElement | null
  • 返回值: HTMLElement | null
  • 描述: 获取此小部件的容器 DOM 节点。返回 null 表示该小部件当前未附加到 DOM。

getDiffLineInformationForModified

  • 语法: getDiffLineInformationForModified(lineNumber: number): IDiffLinesInformation
  • 参数:
    • lineNumber: number
  • 返回值: IDiffLineInformation
  • 描述: 获取修改后的文本的行信息。

getDiffLineInformationForOriginal

  • 语法: getDiffLineInformationForOriginal(): IDiffLinesInformation
  • 返回值: IDiffLineInformation
  • 描述: 获取原始文本的行信息。

getEditorType

  • 语法: getEditorType(): EditorType
  • 返回值: string
  • 描述: 获取此小部件所属的编辑器类型。

getId

  • 语法: getId(): string
  • 返回值: string
  • 描述: 获取此小部件的唯一标识符。

getLineChanges

  • 语法: getLineChanges(): ILineChange[] | undefined
  • 返回值: ILineChange[]
  • 描述: 获取在此小部件中显示的行更改。

getModel

  • 语法: getModel(): ITextModel | null
  • 返回值: ITextModel | null
  • 描述: 获取此小部件的文本模型。

getModifiedEditor

  • 语法: getModifiedEditor(): ICodeEditor
  • 返回值: ICodeEditor
  • 描述: 获取修改后的文本编辑器。

getOriginalEditor

  • 语法: getOriginalEditor(): ICodeEditor
  • 返回值: ICodeEditor
  • 描述: 获取原始文本编辑器。

getPosition

  • 语法: getPosition(): Position | null
  • 返回值: Position | null
  • 描述: 获取此小部件的当前位置。

getSelection

  • 语法: getSelection(): Selection | null
  • 返回值: Selection | null
  • 描述: 获取此小部件的当前选择。

getSelections

  • 语法: getSelections(): Selection[] | null
  • 返回值: Selection[] | null
  • 描述: 获取此小部件的当前选择集合。

getSupportedActions

  • 语法: getSupportedActions(): IEditorAction[]
  • 返回值: IEditorAction[]
  • 描述: 获取此小部件支持的所有操作。

getVisibleColumnFromPosition

  • 语法: getVisibleColumnFromPosition(position: IPosition): number
  • 参数:
  • 返回值: number
  • 描述: 获取指定位置的可见列。

hasTextFocus

  • 语法: hasTextFocus(): boolean
  • 返回值: boolean
  • 描述: 如果此小部件当前具有文本焦点,则返回 true。

layout

  • 语法: layout(dimension?: IDimension): void
  • 参数:
  • 描述: 指示编辑器重新测量其容器。调整编辑器容器大小时应调用此方法。 如果传入维度,则将使用传入的值。

restoreViewState

  • 语法: restoreViewState(state: IDiffEditorViewState): void
  • 参数:
  • 返回值: void
  • 描述: 还原编辑器的视图状态。

revealLine

  • 语法: revealLine(lineNumber: number, scrollType?: ScrollType): void
  • 参数:
  • 返回值: void
  • 描述: 将给定行滚动到视图中。

revealLineInCenter

  • 语法: revealLineInCenter(lineNumber: number, scrollType?: ScrollType): void
  • 参数:
  • 返回值: void
  • 描述: 将给定行滚动到视图中心。

revealLineInCenterIfOutsideViewport

  • 语法: revealLineInCenterIfOutsideViewport(lineNumber: number, scrollType?: ScrollType): void
  • 参数:
  • 返回值: void
  • 描述: 如果给定行在视口之外,则将其滚动到视图中心。

revealLineNearTop

  • 语法: revealLineNearTop(lineNumber: number, scrollType?: ScrollType): void
  • 参数:
  • 返回值: void
  • 描述: 将给定行滚动到视图的顶部。

revealLines

  • 语法: revealLines(startLineNumber: number, endLineNumber: number, scrollType?: ScrollType): void
  • 参数:
    • startLineNumber:number
    • endLineNumber:number
    • scrollType: scrollType 可选
  • 返回值: void
  • 描述: 将给定行范围滚动到视图中。

revealLinesInCenter

  • 语法: revealLinesInCenter(startLineNumber: number, endLineNumber: number, scrollType?: ScrollType): void
  • 参数:
    • startLineNumber:number
    • endLineNumber:number
    • scrollType: scrollType 可选
  • 返回值: void
  • 描述: 将给定行范围滚动到视图中心。

revealLinesInCenterIfOutsideViewport

  • 语法: revealLinesInCenterIfOutsideViewport(startLineNumber: number, endLineNumber: number, scrollType?: ScrollType): void
  • 参数:
    • startLineNumber:number
    • endLineNumber:number
    • scrollType: scrollType 可选
  • 返回值: void
  • 描述: 如果给定行范围在视口之外,则将其滚动到视图中心。

revealLinesNearTop

  • 语法: revealLinesNearTop(startLineNumber: number, endLineNumber: number, scrollType?: ScrollType): void
  • 参数:
    • startLineNumber:number
    • endLineNumber:number
    • scrollType: scrollType 可选
  • 返回值: void
  • 描述: 将给定行范围滚动到视图的顶部。

revealPosition

  • 语法: revealPosition(position: IPosition, scrollType?: ScrollType): void
  • 参数:
  • 返回值: void
  • 描述: 将给定位置滚动到视图中。

revealPositionInCenter

  • 语法: revealPositionInCenter(position: IPosition, scrollType?: ScrollType): void
  • 参数:
  • 返回值: void
  • 描述: 将给定位置滚动到视图中心。

revealPositionInCenterIfOutsideViewport

  • 语法: revealPositionInCenterIfOutsideViewport(position: IPosition, scrollType?: ScrollType): void
  • 参数:
  • 返回值: void
  • 描述: 如果给定位置在视口之外,则将其滚动到视图中心。

revealPositionNearTop

  • 语法: revealPositionNearTop(position: IPosition, scrollType?: ScrollType): void
  • 参数:
  • 返回值: void
  • 描述: 将给定位置滚动到视图的顶部。

revealRange

  • 语法: revealRange(range: IRange, scrollType?: ScrollType): void
  • 参数:
  • 返回值: void
  • 描述: 将给定范围滚动到视图中。

revealRangeAtTop

  • 语法: revealRangeAtTop(range: IRange, scrollType?: ScrollType): void
  • 参数:
  • 返回值:
  • 描述: 将指定范围滚动到编辑器的顶部。如果revealVerticalInCenter为true,则将范围滚动到编辑器垂直中心。如果scrollType为Smooth,则使用平滑滚动。

revealRangeInCenter

  • 语法: revealRangeInCenter(range: IRange, scrollType?: ScrollType): void
  • 参数:
  • 返回值:
  • 描述: 将指定范围滚动到编辑器的中心。如果revealVerticalInCenter为true,则将范围滚动到编辑器垂直中心。如果scrollType为Smooth,则使用平滑滚动。

revealRangeInCenterIfOutsideViewport

  • 语法: revealRangeInCenterIfOutsideViewport(range: IRange, scrollType?: ScrollType): void
  • 参数:
  • 返回值:
  • 描述: 如果指定的范围不在编辑器的视口中,则将其滚动到编辑器的中心。如果revealVerticalInCenter为true,则将范围滚动到编辑器垂直中心。如果scrollType为Smooth,则使用平滑滚动。

revealRangeNearTop

  • 语法: revealRangeNearTop(range: IRange, scrollType?: ScrollType): void
  • 参数:
  • 返回值:
  • 描述: 将指定范围滚动到编辑器的顶部,如果可能的话,将其保持在视口的顶部。如果revealVerticalInCenter为true,则将范围滚动到编辑器垂直中心。如果scrollType为Smooth,则使用平滑滚动。

revealRangeNearTopIfOutsideViewport

  • 语法: revealRangeNearTopIfOutsideViewport(range: IRange, scrollType?: ScrollType): void
  • 参数:
  • 返回值:
  • 描述: 如果指定的范围不在编辑器的视口中,则将其滚动到编辑器的顶部,如果可能的话,将其保持在视口的顶部。如果revealVerticalInCenter为true,则将范围滚动到编辑器垂直中心。如果scrollType为Smooth,则使用平滑滚动。

saveViewState

  • 语法: saveViewState(): IDiffEditorViewState
  • 参数:
  • 返回值: IDiffEditorViewState
  • 描述: 返回当前编辑器的视图状态。

setModel

  • 语法: setModel(model: IDiffEditorModel | null): void
  • 参数:
  • 返回值:
  • 描述: 设置附加到此编辑器的当前模型。 如果之前的模型是由编辑器通过选项文字对象中的值键创建的,它将被销毁。 否则,如果先前的模型是通过 setModel 设置的,或者选项文字对象中的模型键,则不会销毁先前的模型。 调用 setModel(null) 以简单地将当前模型与编辑器分离是安全的

setPosition

  • 语法: setPosition(position: IPosition, source?: string): void
  • 参数:
  • 返回值:
  • 描述: 将编辑器的光标位置设置为指定的位置。

setSelection

  • 语法: setSelection(selection: IRange, source?: string): void
  • 参数:
  • 返回值:
  • 描述: 将编辑器的选择设置为指定的范围。

setSelections

  • 语法: setSelections(selections: ISelection[], source?: string): void
  • 参数:
  • 返回值:
  • 描述: 将编辑器的选择设置为指定的范围数组。

trigger

  • 语法: trigger(source: string, handlerId: string, payload?: any): void
  • 参数:
    • source: string
    • handlerId: string
    • payload: 可选 any
  • 返回值:
  • 描述: 触发指定的命令。

updateOptions

  • 语法: updateOptions(newOptions: IDiffEditorOptions): void
  • 参数:
  • 返回值:
  • 描述: 更新编辑器的选项。