原创 使用Sinon和Rewire對JavaScript中的私有方法進行單元測試

  我們曾經試圖遵循良好的編程習慣,在創建和定義方法時儘可能按照“職責單一”和“開放-封閉”原則將那些沒有必要暴露出來的方法定義爲私有方法,但是在編寫測試用例時又往往對這些設計原則嗤之以鼻,因爲你會爲無法編寫測試這些私有方法的測試用例而感到

原创 如何查找Visual Studio Code中的內置命令並通過executeCommand來執行

  我們在開發Visual Studio Code插件時,經常需要通過Visual Studio Code提供的API來進行一些UI操作,例如打開文檔、修改並保存文檔內容、關閉文檔、打開功能面板等,有些功能可以通過查看Visual Stud

原创 如何在JavaScript的實例對象中改寫原型方法

  在JavaScript中,我們通常可以像下面的代碼這樣來簡單地定義一個類: var sample = function() { // constructor code here } sample.prototype.fun

原创 如何在Visual Studio Code中用Mocha對TypeScript進行測試

  首先,本文不是一篇介紹有關TypeScript、JavaScript或其它編程語言數據結構和算法的文章。如果你正在準備一場面試,或者學習某一個課程,互聯網上可以找到許多相關的資源,我個人比較推崇hackerrank.com。   本文的

原创 如何保持DIV的垂直滾動條在底部

  今天發現一個可以通過CSS使DIV的垂直滾動條保持在底部的方法,記錄一下! .container { height: 100px; overflow: auto; display: flex; flex-directi

原创 VSCode Extension中的Virtual Documents使用筆記

  我們在用TypeScript編寫VSCode Extension應用時,可以通過VSCode API提供的內置Command "vscode.diff"來快速比較兩個文檔,有關該命令的參數介紹可以查看官方文檔。基本用法如下: vsco

原创 如何在Windows中快速切換不同的Java版本

  作爲一名Java程序員,我們經常需要在不同的Java版本下運行我們的應用程序,或者,我們想在不同Java版本上嘗試運行我們的代碼。當然,如果你在IDE下工作,可以非常輕鬆地切換Java版本(大部分IDE都提供該功能),但是如果你只想在C

原创 如何替換json對象中的key

  看到標題你可能會想,如此簡單的問題值得去探究嗎?如果我有一個json object,只需下面簡單的幾行代碼就可以完成: var obj = { "_id": "5078c3a803ff4197dc81fbfb", "e

原创 如何解決在執行gulp任務中出現的錯誤ReferenceError: primordials is not defined

  最近在執行一個gulp任務時遇到下面這個錯誤:   Google的結果是說這個是gulp 3在Node 12.x上的一個bug。解決的辦法有兩個:要麼通過nvm將node版本降到12以下,要麼將gulp升級到4。由於我工作的電腦上還有

原创 Windows上安裝NVM之後找不到NPM的解決辦法

  不久前自己工作的電腦上Node.js升級了,導致有一個依賴的項目無法正常啓動,於是到Google上搜了一把,找到stackoverflow上的一個解決辦法。基本意思是說當前的Node.js版本和gulp 3不兼容,要麼將gulp升級到4

原创 如果通過jQuery的css方法添加帶有!important標記的樣式

  衆所周知,jQuery提供了css方法,用來給指定的元素設置css樣式,或者返回一個或多個樣式屬性,具體的介紹可以參考W3school上的說明。   不過,通過這種方式給元素設置樣式時,!important標記會被忽略掉。例如下面的代碼

原创 Chrome瀏覽器中的三種刷新模式

  互聯網在全球的普及率與日俱增。與此同時,Web瀏覽器在用戶體驗方面也做得越來越好,除了運行速度比以前更快,還包括在操作系統級別上提供的DNS緩存。不過,當不期望的數據被緩存時,這也會帶來一些額外的問題。這種情況下,我們可以通過清除緩存並

原创 Theia——雲端和桌面版的IDE

  Theia是一個利用最新的web技術開發的支持雲端和桌面運行的類似IDE的產品,它是一個可擴展的平臺,並且全面支持多語言。 目標 建立一個可搭建類似IDE產品的平臺 爲終端用戶提供完整的多語言IDE(不僅僅是智能編輯器) 同時支持雲

原创 使用Theia——添加語言支持

上一篇:使用Theia——創建插件 Theia——添加語言支持 Theia中TextMate的支持   使用TextMate語法可以爲大部分源文件提供精準的着色修飾,雖然這只是在語法級別上(沒有語言本身的深度解析)。語義着色可以由語言服務器

原创 Theia APIs——通過JSON-RPC進行通信

上一篇:Theia APIs——事件 通過JSON-PRC進行通信   在本節中,我將講解如何創建後端服務並通過JSON-PRC來連接它。   我將使用debug logging system作爲例子來進行講解。 概述   本示例將用exp