Skip to content

Instantly share code, notes, and snippets.

@hkoba
Last active June 30, 2021 10:32
Show Gist options
  • Save hkoba/0f65e46b95a84b7c0f6efc58db50fa4b to your computer and use it in GitHub Desktop.
Save hkoba/0f65e46b95a84b7c0f6efc58db50fa4b to your computer and use it in GitHub Desktop.
Run static checkings on typescript for every saving action in Emacs tide mode.
;; (add-hook 'after-save-hook #'my-tide-do-lint nil t)
(defun my-tide-do-lint ()
(interactive)
(tide-command:geterr
(lambda (response)
(when (tide-command-unknown-p response)
(tide-tsserver-version-not-supported))
(if (tide-response-success-p response)
;; (message "%s" response)
(-when-let (first-msg (-some-> response (plist-get :body)
-first-item))
(-when-let (err (-> first-msg (plist-get :syntaxDiag) -first-item))
(goto-line (-> err (plist-get :start) (plist-get :line)))
(message "%s" (plist-get err :text)))
(-when-let (err (-> first-msg (plist-get :semanticDiag) -first-item))
(goto-line (-> err (plist-get :start) (plist-get :line)))
(message "%s" (plist-get err :text)))
)
(message "tsserver error: %s" (plist-get response :message))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment