Monaco Editor 中的 Keybinding 機制

2022-09-29 21:01:56

一、前言

前段時間碰到了一個 Keybinding 相關的問題,於是探究了一番,首先大家可能會有兩個問題:Monaco Editor 是啥?Keybinding 又是啥?

  • Monaco Editor
    微軟開源的一個程式碼編輯器,為 VS Code 的編輯器提供支援,Monaco Editor 核心程式碼與 VS Code 是共用的(都在 VS Code github 倉庫中)。
  • Keybinding
    Monaco Editor 中實現快捷鍵功能的機制(其實準確來說,應該是部分機制),可以使得通過快捷鍵來執行操作,例如開啟命令面板、切換主題以及編輯器中的一些快捷操作等。

本文主要是針對 Monaco Editor 的 Keybinding 機制進行介紹,由於原始碼完整的邏輯比較龐雜,所以本文中的展示的原始碼以及流程會有一定的簡化。

文中使用的程式碼版本:

Monaco Editor:0.30.1

VS Code:1.62.1

二、舉個