發表文章

目前顯示的是 6月, 2021的文章

Angular Language Service 在VSCode輸入(event)沒有產生對應的智能提示

圖片
問題描述 更新AgnualrCLI、VSCode 還有VScode插件 Angular Language Service的版本後, 發現登打app.component.html時,在Tag輸入括號時 event binding時沒有智能提示或任何補全效果,但 [ ] 語法或*ngFor這類Structual Directive倒是部份有智能提示(intellisense)。 當輸入( )沒有列出可選的Event,如下圖: 當輸入 Two-way binding  [(  )]裡沒有出現ngModel之類的智能提示,如下圖: 預期行為 當在component.html輸入()或[()]時,會正確出現對應提示。      系統環境 VSCode: 1.57.1 VSCode's Angular Language Service:  12.0.5 Angular: 12.1.0 Angular CLI: 12.1.0 Node: 14.17.1 Package Manager: npm 6.14.13 OS: linux x64 解決方式 1. 開啟Angular Language Service的extension settings 2.  選擇User ,並勾選 Use Legacy View Engine language service. 完成設定後,就會跟預期行為的結果相同。 我知道這只是一種折衷辦法,昨天花了一個下午去網路去查不管是中文還英文資料, 想找到一個既用最新Ivy(目前預設Ivy)又可以正確運作的方法, 最後結論還是Ivy 這個功能還不太穩定, 所以改用舊版的ViewEngine並暫停Extension自動更新會是一個比較好的作法。 看到這邊的你可能會有些失望,但我覺得投資時間在開發上會更好, 畢竟安裝插件是為了加速開發,而不是拖延開發。 補充說明 另外VSCode可以直接安裝Will保哥的插件大集合, 可以節省尋找安裝Angular相關插件的時間。 因為Angular LanguageService提供的智能提示和常用語法產生不夠完整, 安裝額外的Snippets之類的插件可以少打很多字。   最後如果網友知道有更好的解決辦法,歡迎留言分享😼👍。 2021/7/25 (五) 此Bug仍存在於 Angular CLI: 12.1.3 No