highlight.js
星期四, 9月 29, 2016
Arduino 1.6.10 編譯中文資料夾下的程式問題
從 Arduino 1.6.10 版開始, 如果你的專案儲存在有中文名稱的路徑下, 而你的程式中又包含有函式的定義在呼叫函式處之後的狀況, 例如以下的範例:
其中 foo() 定義在程式最尾端, 但是在程式一開始的 setup() 中就呼叫了 foo()。這時編譯會出現 "'foo' was not declared in this scope" 錯誤訊息。只要把程式移到沒有中文名稱的路徑下就可以正常編譯。推測可能是 Arduino 1.6.10 之後, 在編譯的細節中有所變動, 導致編譯前段蒐集所有定義項目的資訊無法存回存到位在中文名稱路徑下的專案資料夾, 因而在後段編譯時認不得這些定義在引用處之後的名稱。
附註:在『文件』以及『桌面』下並不會有問題, 因為實際上『文件』與『桌面』的真實資料夾名稱是 Document 與 Desktop, 並不含中文。
星期三, 9月 28, 2016
在 Visual Studio Code 為新語言增加語法標示 (Syntax Highlighting)
Visual Studio Code 寫程式很好用, 但如果遇到特殊或是很新的語言, 就不見得有前人製作好的套件可以幫程式碼標示語法, 這時候就只好自己動手做了。這得自行設計好對應該語言的語法規則套件, 相關說明可參考 Visual Studio Code 的文件。大致步驟如下:
附註:TextMate 的語法規則檔不只 Visual Studio Code 使用,鼎鼎大名的 Sublime Text 以及 Atom 也都是使用同一格式來描述語法的規則, 儼然成為文字編輯器界的標準了。
- 撰寫該語言的語法規則檔
- 以語法規則檔為基礎建立該語言的擴充功能 (extension)
- 將建立好的擴充功能加入 Visual Studio Code 後重新啟動 Visual Studio Code
- 開啟該語言的檔案或手動選用該語言擴充功能, 就可以看到語法標示發揮效用
附註:TextMate 的語法規則檔不只 Visual Studio Code 使用,鼎鼎大名的 Sublime Text 以及 Atom 也都是使用同一格式來描述語法的規則, 儼然成為文字編輯器界的標準了。
訂閱:
文章 (Atom)