2016-12-12 18 views
3

私はmonaco editorのインスタンスでインデント幅(スペースで)を設定したいと思います。モナコエディタインスタンスでタブ幅を設定するにはどうすればよいですか?

これまでは、初期化中にIEditorOptionsのいずれかを渡すことで、多くのオプションをカスタマイズできました。これらのオプションは、次の例に見えるように、エディタインスタンスにupdateOptions方法を用いて、後でカスタマイズすることができる。

// Many settings can be applied at initialization 
var editor = monaco.editor.create(
    document.getElementById("editor"), { 
    language: "html", 
    value: "<p>Hello World!</p>", 
}); 

// ... they can also be changed later ... 
editor.updateOptions({ 
    lineNumbers: true, 
}) 

// ... however, tabSize is not among the settings that can be modified -- 
// the following has no effect: 
editor.updateOptions({ 
    tabSize: 2, 
}) 

しかし、tabSize設定がこのインタフェース、むしろ別々FormattingOptionsインタフェースで定義されていません私はバインディングを見つけることができませんでした(コード検索ではonly the interface definitionが見つかりました)。

この設定を調整できますか?私の推測では、(それ以外の点では優れた)エディタのドキュメントを誤解しているので、それをナビゲートする助けが非常に役立つでしょう。

いつもどんなアイデアやヒントも大変感謝しています。 この質問を検討していただきありがとうございます!

答えて

3

答えはただ持っています対応するGitHub issueで議論されている。このトリックは、エディタのオプションを直接更新するのではなく、基礎となるモデルを更新することです。拡張するには上記切り取ら:

const editor = monaco.editor.create(
    document.getElementById("editor"), { 
    language: "html", 
    value: "<p>Hello World!</p>", 
}); 

editor.getModel().updateOptions({ tabSize: 2 }) 

これはMonaco Playgroundで私(™)のために動作します。

モナコの開発者—私は絶対に彼らのエディタが大好きで、これはさらに改善されています。

3

私はどちらかのグローバルtabSizeオプションを設定する方法を理解することができていない、しかし私は、具体的HTMLためのオプションを設定するために管理しなかった:

editor.languages.html.htmlDefaults.setOptions({ tabSize: 2 });

関連する問題