Monaco Diff Editor UX 允许用户使用两个窗格中间的调整器来调整原始窗格和修改后的窗格的大小。
onDidLayoutChange您可以通过挂钩的 事件来伪造该行为originalEditor(这是显示 时的左侧编辑器DiffEditor)。此事件处理程序将侦听布局的任何更改(例如,用户拖动调整大小手柄)并更新左侧标题的大小以与编辑器保持同步:
diffEditor._originalEditor.onDidLayoutChange(function(layout) {
document.getElementById('left-header').style.width = layout.width + 'px';
});
Run Code Online (Sandbox Code Playgroud)
假设您具有以下 HTML 结构:
<!-- Fake header -->
<div style="display: flex">
<div id="left-header" style="width: calc(50% - 14px)">Left Header</div>
<div>Right Header</div>
</div>
<!-- container for Monaco editor -->
<div id="container" style="height: 100%"></div>
Run Code Online (Sandbox Code Playgroud)
这里,左侧标题的初始宽度设置50% - 14px为14px摩纳哥调整大小栏的宽度。
如果将以下 HTML 和 CSS 粘贴到Monaco Playground中,您将看到它正在运行:
超文本标记语言
<div style="display: flex">
<div id="left-header" style="width: calc(50% - 14px)">Left Header</div>
<div>Right Header</div>
</div>
<div id="container" style="height: 100%"></div>
Run Code Online (Sandbox Code Playgroud)
JavaScript
// The diff editor offers a navigator to jump between changes. Once the diff is computed the <em>next()</em> and <em>previous()</em> method allow navigation. By default setting the selection in the editor manually resets the navigation state.
var originalModel = monaco.editor.createModel(
'just some text\n\nHello World\n\nSome more text',
'text/plain'
);
var modifiedModel = monaco.editor.createModel(
'just some Text\n\nHello World\n\nSome more changes',
'text/plain'
);
var diffEditor = monaco.editor.createDiffEditor(document.getElementById('container'));
diffEditor.setModel({
original: originalModel,
modified: modifiedModel
});
var navi = monaco.editor.createDiffNavigator(diffEditor, {
followsCaret: true, // resets the navigator state when the user selects something in the editor
ignoreCharChanges: true // jump from line to line
});
window.setInterval(function () {
navi.next();
}, 2000);
diffEditor._originalEditor.onDidLayoutChange(function(layout) {
document.getElementById('left-header').style.width = layout.width + 'px';
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
844 次 |
| 最近记录: |