diff --git a/contrib/!lang/typescript/packages.el b/contrib/!lang/typescript/packages.el new file mode 100644 index 000000000000..79524fc0d61f --- /dev/null +++ b/contrib/!lang/typescript/packages.el @@ -0,0 +1,53 @@ +;;; packages.el --- typescript Layer packages File for Spacemacs +;; +;; Copyright (c) 2012-2014 Sylvain Benner +;; Copyright (c) 2014-2015 Chris Bowdon & Contributors +;; +;; Author: Chris Bowdon +;; Author: Hamish Hutchings +;; URL: https://github.com/syl20bnr/spacemacs +;; +;; This file is not part of GNU Emacs. +;; +;;; License: GPLv3 + +(setq typescript-packages '( + tss + flycheck)) + +(setq test-layer-excluded-packages '()) + +(defun typescript/post-init-flycheck () + "Add hook for flycheck" + (use-package flycheck + :defer t + :config + (progn + ;; ;;; remove hook for flymake, as it seems to conflict. + ;; (add-hook 'typescript-mode-hook 'flycheck-mode (flymake-mode nil)) + ;; (add-hook 'typescript-mode-hook (lambda flymake-mode nil)) + ;;; This Code Snippet was from [Here](https://github.com/caisah/flycheck-typescript) and is licensed under the GPL + (flycheck-define-checker typescript + "A TypeScript syntax checker using tsc command." + :command ("tsc" "--out" "/dev/null" source-inplace) + :error-patterns + ((error line-start (file-name) "(" line "," column "): error " (message) line-end)) + :modes (typescript-mode)) + + (add-to-list 'flycheck-checkers 'typescript)))) + +(defun typescript/init-tss () + "Initialize tss" + (use-package tss + :defer t + :mode ("\\.ts\\'" . typescript-mode) + :init (evil-leader/set-key-for-mode 'flycheck-mode + "mgg" 'tss-jump-to-definition + "mhh" 'tss-popup-help) + :config + (progn + ;; Remove Flymake mode from hook. + (advice-add 'tss-setup-current-buffer :before (lambda flymake-mode nil)) + + (add-hook 'typescript-mode-hook 'tss-setup-current-buffer t) + (add-hook 'kill-buffer-hook 'tss--delete-process t)))) diff --git a/layers/!lang/typescript/packages.el b/layers/!lang/typescript/packages.el index b514aa97e54a..7a1279d778ff 100644 --- a/layers/!lang/typescript/packages.el +++ b/layers/!lang/typescript/packages.el @@ -4,20 +4,62 @@ ;; Copyright (c) 2014-2015 Chris Bowdon & Contributors ;; ;; Author: Chris Bowdon +;; Author: Hamish Hutchings ;; URL: https://github.com/syl20bnr/spacemacs ;; ;; This file is not part of GNU Emacs. ;; ;;; License: GPLv3 -(setq typescript-packages '(tss)) +(setq typescript-private-packages '( + tss + flycheck)) -(defun typescript/init-tss () - "Initialize my package" +(setq test-layer-excluded-packages '(flymake)) + +(defun typescript-private/post-init-flycheck () + "Add hook for flycheck" + (use-package flycheck + :defer t + :config (progn + ;; ;;; remove hook for flymake, as it seems to conflict. + ;; (add-hook 'typescript-mode-hook 'flycheck-mode (flymake-mode nil)) + ;; (add-hook 'typescript-mode-hook (lambda flymake-mode nil)) + ;;; This Code Snippet was from [Here](https://github.com/caisah/flycheck-typescript) and is licensed under the GPL + (flycheck-define-checker typescript + "A TypeScript syntax checker using tsc command." + :command ("tsc" "--out" "/dev/null" source-inplace) + :error-patterns + ((error line-start (file-name) "(" line "," column "): error " (message) line-end)) + :modes (typescript-mode)) + + (add-to-list 'flycheck-checkers 'typescript) + ) + ) + ) + + +(defun typescript-private/init-tss () + "Initialize tss" (use-package tss :defer t - :mode ("\\.ts\\'" . typescript-mode) - :init (evil-leader/set-key-for-mode 'typescript-mode - "mgg" 'tss-jump-to-definition - "mhh" 'tss-popup-help) - :config (tss-config-default))) + :mode ( + ("\\.ts\\'" . typescript-mode) + )) + :init (evil-leader/set-key-for-mode 'flycheck-mode + "mgg" 'tss-jump-to-definition + "mhh" 'tss-popup-help) + + ) + +(defun typescript-private/post-init-tss () + "Initialize tss" + (use-package tss + :defer t + :config (progn + ;; Remove Flymake mode from hook. + (advice-add 'tss-setup-current-buffer :before (lambda flymake-mode nil)) + + (add-hook 'typescript-mode-hook 'tss-setup-current-buffer t) + (add-hook 'kill-buffer-hook 'tss--delete-process t) + )))