Các extension của vscode giúp dự án Angular đỡ khổ 😍

Editor ở đây chúng ta hướng tới là vscode hoặc vscode-insiders hoặc vscodium.

Screenshot from 2022-08-25 09-13-15.png

🤖 Code Linter - refactor - formatter

🌈 Prettier - Code formatter

Giúp tự động sửa code bẩn (không đúng coding rules) thành đẹp.

Đỡ bực mình khi cả nghìn dòng code bẩn khó sửa chẳng hạn.

Config hữu ích tại settings (ctrl + shift + P + Open Settings JSON):

    "[typescript]": {
        "editor.formatOnSave": true,
        "editor.tabSize": 2,
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[html]": {
        "editor.formatOnSave": true,
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[scss]": {
        "editor.formatOnSave": true,
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[yaml]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },

🐭 EditorConfig for VS Code - must be installed!

Vì khi dùng Angular CLI để tự động tạo ra 1 base project thì đã có sẵn .editorconfig rồi.

Tùy theo coding rules mà sửa .editorconfig thôi.

ESLint

Quan trọng gần nhất, check chính tả, định nghĩa thế nào là cách viết code tệ.

    "eslint.packageManager": "yarn"

Do TSLint đã không còn được support (update) nữa từ năm 2019, ta nên dùng ESLint.

TSLint (deprecated)

Tới Angular 11, Angular sẽ warning nên dùng angular-eslint thay thế cho TSLint.

🛡️ Angular Language Service

Với các tính năng:

  • Completions lists

  • AOT Diagnostic messages: giúp xác định lỗi từ editor thay vì đợi tới lúc compile.

  • Quick info

  • Go to definition

Thì nó là thằng quan trọng nhất.

Config hữu ích:

    "editor.showUnused": true,

🌂 style lint

Check chính tả cho CSS/SCSS/Less, kiểu như eslint nhưng cho style.

Ngoài ra, mình cũng có bài viết Must-have style-lint basic rules 🎨

✏️ code-spell-checker

Check chính tả tiếng Anh. Để thằng sau đọc code nó không cười vì đặt tên biến, hàm ngu.

🐪 Lối tắt

Angular 10 Snippets

Tạo ra cả 1 component full đồ khi chỉ cần gõ ng-component vào file trống chẳng hạn.

angular-schematics

Extension cho những ai lười gõ command khởi tạo component, service... hoặc không nhớ command.

  • Thay thế cho Angular CLI (command line) bằng UI.

  • Không còn nhưng lỗi typo - gõ sai chính tả ngớ ngẩn.

  • Support nhiều option cho từng loại:

Screenshot from 2021-06-03 12-56-15.png

🧘 Angular Zen Mode

Tự động chia màn hình thành 3 phần của Component:

  • Code (.ts) chiếm 2/4 màn hình

  • Template (.html) chiếm 1/4 màn hình

  • Style (.css/.scss/.sass/.less) chiếm 1/4 màn hình

auto-rename-tag

Thằng này thì cái tên đã nói lên tất cả rồi. :v

angular2-switcher

Khi mà bạn bị bắt không được code kiểu inline (kiểu chung htmlts 1 file) hay là bạn thích tách riêng các file ra, thì việc chuyển qua lại giữa các file của 1 component là chuyện thường xuyên.

Đã có angular2-switcher, switch giữa các kiểu file: typescript(.ts)|template(.html)|style(.scss/.sass/.less/.css) trong cùng 1 component với 1 loạt phím tắt nhanh và tiện.

📐 arrr

  • Gom HTML được bôi dên thành 1 component mới.

  • Tự động nhận biết và tạo @Input() cho component đó.

  • Generates HTML, CSS, TS và spec files.

extract-to-dir.gif

Paste JSON as Code

Chuyển file JSON sang Typescript và các ngôn ngữ khác.

🚀 turbo-console-log

Tạo console.log siêu nhanh bằng cách bôi đen biến cần log và ấn ctrl + alt + L.

insert_log_message.gif

🌅 Syntax highlighting

angular2-inline

Dành cho tín đồ thích code 1 file chung có hết typescript, style (css, scss..), html - kiểu như react-native.

Và tôi cũng thích kiểu này. 😄

vscode-angular-html

Syntax highlighting for angular HTML template files.

angular-directives.gif

🌄 markdown-preview-enhanced

Tăng trình viết tài liệu dự án (README.md).

Thêm cả thằng markdown lint nữa cho bá.

    "markdown-preview-enhanced.codeBlockTheme": "monokai.css",
    "markdown-preview-enhanced.revealjsTheme": "black.css",
    "markdown-preview-enhanced.previewTheme": "atom-dark.css",
    "markdown-preview-enhanced.mermaidTheme": "dark",
    "markdown-preview-enhanced.liveUpdate": true,
    "markdown.preview.fontSize": 11,

🌓 swagger-viewer

Rất hữu dụng khi design + test + mock API theo chuẩn openapi hay swagger.

swagger-preview.gif

Nếu file yaml quá dài ảnh hưởng tới hiệu năng đọc file thì giới hạn:

    "yaml.maxItemsComputed": 512,

svg-preview

Xem ảnh SVG từ mớ bùng nhùng svg-tag.

deepdark-material theme

59273175-41c9bd00-8c60-11e9-917e-15a296b7f0fa.png

Cùng với settings (ctrl + shift + P + Open Settings JSON):

{
    "editor.cursorSmoothCaretAnimation": true,
    "editor.cursorBlinking": "expand",
    "workbench.colorTheme": "Deepdark Material Theme | Full Black Version",
}

Material Icon Theme

Giúp bạn dễ phân biệt các loại file trong Angular như Component, Service, ...

Screenshot from 2021-01-14 18-07-38.png

Thì đây là theme ưu thích của mình.

✔️ Unit test

Karma Problem Matcher

Bắt lỗi ngay trên vscode thay vì trên browser.

SimonTest

Tự động tạo ra mock service cho TestBednever have to worry about hitting the real services. 😃

angular-karma-test-explorer

img-running-tests-readme.png

  • Run và Reload tests bằng run, reload button ngay trên UI vscode.

  • Xem results ngay trên UI.

  • Debug tests, shows log của test thất bại ngay trên dòng source code mà nó failed.


Angular Extension Pack

Nếu các bạn lười install hay quản lý đống extentions riêng cho Angular, bạn có thể dùng cái này. Hay tìm hiểu thêm extentions khác hữu ích mà mình chưa biết.

Other settings.json and extentions

Settings

Để mở settings.json thì ta ấn: Ctrl + Shift + P -> gõ settings -> tìm lựa chọn settings bằng JSON.

Edit settings.json để default UI/UX xịn hơn:

    "editor.cursorSmoothCaretAnimation": true,
    "editor.cursorBlinking": "expand"

Nếu máy bạn đang cài Fira Code font thì setting:

    "editor.fontFamily": "'Fira Code'",
    "editor.fontLigatures": true,
    "editor.fontWeight": "300",

For TypeScript

Other extensions