Language Server Protocol 簡稱 LSP ,是微軟於 2016 所定的一個協定,專門用來輔助 Visual Studio Code 開發用的,目標是讓 Code-Editor 能便利地支援更多的程式語言。設計理念是把語言撰寫領域模型如:掃描器、剖析器、類型檢查器等這些提供輔助功能的部分,拆出去用公定的介面來做溝通,給各自領域的人開發。

LSP 專門用於描述 Code-Editor 中,用戶行爲與響應之間通訊方式傳輸資料結構,像是 VSCode 的 IntelliSense 提供的 auto-completion 就可以基於這個協定,支援更多不同的 coding language。 現在支援 LSP 的編輯器也不少,不是只有 VSCode ,還有 Eclipse、Vim、NeoVim、都已經支援了,在 langserver.org 可以看到各個 client 的支援狀況。

Continue reading

整合式開發環境 Integrated Development Environment 簡稱為 IDE ,是一種程式開發軟體,通常只針對特定語言,且有應用程式生命週期管理 ALM 功能 ; 另一方面文字編輯器 Text Editor 通常只提供如複製、剪下、貼上、搜尋、取代等文字操作功能,但現在兩個已經沒有區分的這麼明顯,原因就是 VSCode 的出現很大了融合了兩者。 VSCode 其定位採用核心是 <Text Editor + code understanding + debug>,並以檔案夾作為專案管理,保持輕量與高性能,但還是提供強大的支援語法。

與許多程式編輯器一樣,VSCode 也採用通用 layout,設計理念是希望可以提供簡單直覺的工具,讓使用者可以直觀的選取檔案並閱覽、編輯檔案,本文章首先討論 Workbench 的定義和介紹 vscode layout 各個名稱。

Continue reading

Visual Studio Code 簡稱 VSCode ,是微軟 2015 年開源的輕量化 code editor ,基於 Electron 並用自家雲端的編輯器 Monaco Editor 作為其底層開發,支援多語言及平台,且使用 TypeScript 來進行編寫,也提供了強大的外掛程式拓展機制給人加強功能。由 Eclipse 之父 Erich Gamma 領導( Erich 也是《設計模式》作者之一),VSCode 也在 2019 年的 Stack Overflow 開發者研究中,獲選最受歡迎的 code editor 有 50.7% 的使用率。

Continue reading

當要建立新專案時,都會需要決定一些關於基礎的架構或開發規劃的事項例如 :

  • 設計 folder structure
  • 打包編譯工具的選擇
  • IDE 預設環境配置;IDE plugin 或 extension 的安裝
  • CI/CD、IaC 設定或工具選擇

每次建立專案時都會參考之前的架構規劃,然後手動複製架構雛形,重新設定參數,其實不太方便… 這時就可以引入 Scaffold 這樣的模坂概念,來直接生成專案的骨架。本質用意是把那些重複地創建專案基礎結構、專案規格流程取代掉,實現 DRY (Don’t Repeat Yourself) 原則。而 Yeoman 就是一個著名 scaffolding generator tool,微軟官方維護 Visual Studio Code extensions,就是裡面非常著名的例子。

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan