TypeScript ファイル(.ts) を使う上での設定を書いている。とりあえず簡単な設定だけ。
typescript-mode は TypeScript 向けの Syntax Highlight とかを提供してくれるメジャーモード。
自分はいつも通り el-get で入れている
(el-get-bundle typescript-mode)
などを設定している。
(custom-set-variables
'(typescript-indent-level 2)
'(lsp-typescript-locale "ja")
'(lsp-inlay-hint-enable t)
'(lsp-javascript-display-parameter-name-hints t)
'(lsp-javascript-display-enum-member-value-hints t)
'(lsp-clients-typescript-max-ts-server-memory 2048)
'(lsp-disabled-clients '())
'(lsp-eslint-auto-fix-on-save nil))
保存した時に自動で整形してほしいなと思ったので自動で保存されるように hook 関数を用意している
(defun my/ts-mode-auto-fix-hook ()
(when (string-equal (file-name-extension buffer-file-name) "ts")
(lsp-eslint-apply-all-fixes)))
などのプログラミングで便利な各種のモードを hook を使って有効化している
(defun my/ts-mode-hook ()
(origami-mode 1)
(company-mode 1)
(subword-mode 1)
(copilot-mode 1)
(turn-on-smartparens-strict-mode)
(display-line-numbers-mode t)
(lsp)
(lsp-ui-mode 1)
(add-hook 'before-save-hook #'my/ts-mode-auto-fix-hook nil 'local))
この関数を
(add-hook 'typescript-ts-mode-hook 'my/ts-mode-hook)
として hook に追加している。
直接 lambda で add-hook に書くという手もあるが関数を分離しておくと修正の反映が用意なのでこのようにしている。
.ts ファイルであれば typescript-mode で動いてほしいので auto-mode-alist に突っ込んでいる
(add-to-list 'auto-mode-alist '("\\.ts" . typescript-ts-mode))
また skk もいい感じに動いてほしいので context-skk-programming-mode を有効にしている
(add-to-list 'context-skk-programming-mode 'typescript-ts-mode)