7Y3XBGQLPUDJFP2NXN53AOUHR5W2NJRK2F66BUNT4BAWIKSHXC3QC CHVUM5ZYAVKV5SIGQAWJ6U3KN7XUTTYRIZ47QBFG4GMHUQ2QNBCAC RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC IOXOZB2VUXVUEINLFBT4SPSJV32X5ZFT5FKSVRAIEXEFQJLG6MHQC 7F7T4E5VD2K7I2YRWYPP7EFJTAII5O6LCXDZ3JDXCVOEBJK7HSJQC 7XDDBWIHI2COD5CEUUTJUPHH24ZYCTZDIMXUXNKZZTUDGMADO6HAC IOVPOFAVXEQIZ7BCFVVAWFW3RYFXPK2GOILDWA6N6QHQHLAJ4XTAC F3ENAOSOVGL4WEGHDMXC7MHRZK2Q4M35YYW433N2ABZ6S3SU4AAQC RBGV5L2RZ3QLWUYDVYEZ4YVTUS5BD4VYUQSYSPV2GXU6BSV3EFIQC RXWXT4IQ4JGRLN6CAYSDZFKUMNZNAKCATUQBUAYCGIYLVKASU6PAC O44NSJ7NBP6VO6BMDKN4XID4SLPHLQQVN6AC3PU3XX5BGD3XGZZQC W3RIF7CBHJDLOKR52JID65TG2C754QGCW7XV4ZJH27OWS6S5IVUAC FFPI5NN6JRVF3TBGRJMJT57U2UHB5QCOUGKVF6TUVW3HJNHOP4CAC N5ITZBU6GXZJXXKG4POVVO6H2AEKOIPKL7JEA4PA5FY27U3MDT4AC Z52JJYAJTTGPLIRJ52WJLMLS6Y2TK3T47WERVXGUB7LL2DUCPT7QC (use-package js2-mode:ensure t:defer t:commands js2-mode:config(define-key js-mode-map (kbd "M-.") nil)(define-key js2-mode-map (kbd "M-.") nil)(modify-syntax-entry ?_ "w" js2-mode-syntax-table)(add-to-list 'interpreter-mode-alist (cons "node" 'js2-mode))(setq-default js2-basic-offset 4)(setq-default js-indent-level 4)(define-key js2-mode-map (kbd "<leader>t") 'fwoar/trigger-jest)(add-hook 'js2-mode-hook 'flycheck-mode)(customize-set-variable 'js2-mode-show-parse-errors nil)(customize-set-variable 'js2-strict-missing-semi-warning nil)(customize-set-variable 'js2-strict-trailing-comma-warning nil)(customize-set-variable 'js2-strict-inconsistent-return-warning nil))(use-package js:ensure t:config(modify-syntax-entry ?_ "w" js-mode-syntax-table);;; indent ternaries with arrow function correctly---(defun js--looking-at-operator-p ()"Return non-nil if point is on a JavaScript operator, other than a comma."(save-match-data(and (looking-at js--indent-operator-re)(or (not (eq (char-after) ?:))(save-excursion(js--backward-syntactic-ws)(when (memq (char-before) '(?\) ?})) (backward-list))(and (js--re-search-backward "[?:{]\\|\\_<case\\_>" nil t)(eq (char-after) ??))))(not (and(eq (char-after) ?/)(save-excursion(eq (nth 3 (syntax-ppss)) ?/))))(not (and(eq (char-after) ?*);; Generator method (possibly using computed property).(looking-at (concat "\\* *\\(?:\\[\\|" js--name-re " *(\\)"))(save-excursion(js--backward-syntactic-ws);; We might misindent some expressions that would;; return NaN anyway. Shouldn't be a problem.(memq (char-before) '(?, ?} ?{)))))))))(defun fwoar/typescript-mode-hook ()(tree-sitter-require 'typescript)(when (s-suffix-p ".tsx" buffer-file-name)(setq-local tree-sitter-language (tree-sitter-require 'tsx)))(flycheck-mode 1)(lsp)(prettier-js-mode 1)(tree-sitter-mode 1)(tree-sitter-hl-mode 1)(comment(tide-setup)(tide-hl-identifier-mode 1)))(use-package typescript-mode:ensure t:config(define-key typescript-mode-map (kbd "<leader>t") 'fwoar/trigger-jest)(add-hook 'typescript-mode-hook 'fwoar/typescript-mode-hook)(add-to-list 'auto-mode-alist'("\\.tsx$" . typescript-mode)))(use-package tree-sitter:ensure t)(use-package tree-sitter-langs:after tree-sitter:ensure t)(comment(use-package tide:ensure t:config(add-hook 'js2-mode-hook 'tide-setup)(add-hook 'typescript-mode-hook 'fwoar/typescript-mode-hook)(add-hook 'js2-mode-hook 'tide-hl-identifier-mode)(comment(flycheck-add-next-checker 'javascript-eslint'javascript-tide'append))))(use-package rjsx-mode:ensure t:config(add-hook 'js2-mode-hook 'lsp)(define-key rjsx-mode-map (kbd "M-.") nil)(add-to-list 'auto-mode-alist '("\\.js$" . rjsx-mode)))(comment(use-package tern:config(add-hook 'js-mode-hook (lambda () (tern-mode t)))(add-hook 'js2-mode-hook (lambda () (tern-mode t))))(use-package company-tern:ensure t:config(add-to-list 'company-backends 'company-tern)(setq company-tooltip-align-annotations t)))(use-package jest:ensure t:config(defun jest--project-root ()"Find the project root directory."(let ((closest-package-json (fwoar--find-package-json))(projectile-root (projectile-project-root)))(message "%s <-> %s" closest-package-json projectile-root)(if (s-prefix-p projectile-root closest-package-json)closest-package-jsonprojectile-root))))(comment(use-package vue-mode:ensure t:config(add-hook 'vue-mode'prettier-js-mode)(add-hook 'vue-mode'flycheck-mode)))(use-package prettier-js:ensure t:delight " p":init(add-hook 'js2-mode-hook 'prettier-js-mode)(add-hook 'css-mode 'prettier-js-mode))(cl-defgeneric fwoar/test-on-save ()(:method ()))(defvar-local fwoar/*test-file-name* nil)(defun fwoar/trigger-jest ()(interactive)(when-let ((test-name (if fwoar/*test-file-name*fwoar/*test-file-name*(setq-local fwoar/*test-file-name*(if (projectile-test-file-p buffer-file-name)buffer-file-name(projectile-find-implementation-or-test buffer-file-name))))))(let ((proc (make-network-process:name "jest-comm":buffer "*jest-comm*":family 'local:service "/tmp/jest.sock")))(unwind-protect(process-send-string proc test-name)(delete-process proc)))))(cl-defmethod fwoar/test-on-save (&context (major-mode (derived-mode typescript-mode)))(fwoar/trigger-jest))(cl-defmethod fwoar/test-on-save (&context (major-mode (derived-mode js-mode)))(fwoar/trigger-jest))(defvar *tos-hook*(add-hook 'after-save-hook 'fwoar/test-on-save))
(use-package js2-mode:ensure t:defer t:commands js2-mode:config(define-key js-mode-map (kbd "M-.") nil)(define-key js2-mode-map (kbd "M-.") nil)(modify-syntax-entry ?_ "w" js2-mode-syntax-table)(add-to-list 'interpreter-mode-alist (cons "node" 'js2-mode))(setq-default js2-basic-offset 4)(setq-default js-indent-level 4)(add-hook 'js2-mode-hook 'lsp)(add-hook 'js2-mode-hook 'flycheck-mode)(customize-set-variable 'js2-mode-show-parse-errors nil)(customize-set-variable 'js2-strict-missing-semi-warning nil)(customize-set-variable 'js2-strict-trailing-comma-warning nil)(customize-set-variable 'js2-strict-inconsistent-return-warning nil))(use-package js:ensure t:config(modify-syntax-entry ?_ "w" js-mode-syntax-table);;; indent ternaries with arrow function correctly---(defun js--looking-at-operator-p ()"Return non-nil if point is on a JavaScript operator, other than a comma."(save-match-data(and (looking-at js--indent-operator-re)(or (not (eq (char-after) ?:))(save-excursion(js--backward-syntactic-ws)(when (memq (char-before) '(?\) ?})) (backward-list))(and (js--re-search-backward "[?:{]\\|\\_<case\\_>" nil t)(eq (char-after) ??))))(not (and(eq (char-after) ?/)(save-excursion(eq (nth 3 (syntax-ppss)) ?/))))(not (and(eq (char-after) ?*);; Generator method (possibly using computed property).(looking-at (concat "\\* *\\(?:\\[\\|" js--name-re " *(\\)"))(save-excursion(js--backward-syntactic-ws);; We might misindent some expressions that would;; return NaN anyway. Shouldn't be a problem.(memq (char-before) '(?, ?} ?{)))))))))
(load-package-configuration 'javascript)
(use-package vue-mode:ensure t:config(add-hook 'vue-mode'prettier-js-mode)(add-hook 'vue-mode'flycheck-mode))(use-package prettier-js:ensure t:init(add-hook 'js2-mode-hook 'prettier-js-mode)(add-hook 'css-mode 'prettier-js-mode))(use-package typescript-mode:ensure t:config(add-to-list 'auto-mode-alist'("\\.tsx$" . typescript-mode)))
(use-package rjsx-mode:ensure t:config(define-key rjsx-mode-map (kbd "M-.") nil)(add-to-list 'auto-mode-alist '("\\.js$" . rjsx-mode)))(comment(use-package tern:config(add-hook 'js-mode-hook (lambda () (tern-mode t)))(add-hook 'js2-mode-hook (lambda () (tern-mode t))))(use-package company-tern:ensure t:config(add-to-list 'company-backends 'company-tern)(setq company-tooltip-align-annotations t)))(use-package jest:ensure t:config(defun jest--project-root ()"Find the project root directory."(let ((closest-package-json (fwoar--find-package-json))(projectile-root (projectile-project-root)))(message "%s <-> %s" closest-package-json projectile-root)(if (s-prefix-p projectile-root closest-package-json)closest-package-jsonprojectile-root))))
(use-package js2-mode:ensure t:defer t:commands js2-mode:config(define-key js-mode-map (kbd "M-.") nil)(define-key js2-mode-map (kbd "M-.") nil)(modify-syntax-entry ?_ "w" js2-mode-syntax-table)(add-to-list 'interpreter-mode-alist (cons "node" 'js2-mode))(setq-default js2-basic-offset 4)(setq-default js-indent-level 4)(define-key js2-mode-map (kbd "<leader>t") 'fwoar/trigger-jest)(add-hook 'js2-mode-hook 'flycheck-mode)(customize-set-variable 'js2-mode-show-parse-errors nil)(customize-set-variable 'js2-strict-missing-semi-warning nil)(customize-set-variable 'js2-strict-trailing-comma-warning nil)(customize-set-variable 'js2-strict-inconsistent-return-warning nil))(use-package js:ensure t:config(modify-syntax-entry ?_ "w" js-mode-syntax-table);;; indent ternaries with arrow function correctly---(defun js--looking-at-operator-p ()"Return non-nil if point is on a JavaScript operator, other than a comma."(save-match-data(and (looking-at js--indent-operator-re)(or (not (eq (char-after) ?:))(save-excursion(js--backward-syntactic-ws)(when (memq (char-before) '(?\) ?})) (backward-list))(and (js--re-search-backward "[?:{]\\|\\_<case\\_>" nil t)(eq (char-after) ??))))(not (and(eq (char-after) ?/)(save-excursion(eq (nth 3 (syntax-ppss)) ?/))))(not (and(eq (char-after) ?*);; Generator method (possibly using computed property).(looking-at (concat "\\* *\\(?:\\[\\|" js--name-re " *(\\)"))(save-excursion(js--backward-syntactic-ws);; We might misindent some expressions that would;; return NaN anyway. Shouldn't be a problem.(memq (char-before) '(?, ?} ?{)))))))))(defun fwoar/typescript-mode-hook ()(tree-sitter-require 'typescript)(when (s-suffix-p ".tsx" buffer-file-name)(setq-local tree-sitter-language (tree-sitter-require 'tsx)))(flycheck-mode 1)(lsp)(prettier-js-mode 1)(tree-sitter-mode 1)(tree-sitter-hl-mode 1)(comment(tide-setup)(tide-hl-identifier-mode 1)))(use-package typescript-mode:ensure t:config(define-key typescript-mode-map (kbd "<leader>t") 'fwoar/trigger-jest)(add-hook 'typescript-mode-hook 'fwoar/typescript-mode-hook)(add-to-list 'auto-mode-alist'("\\.tsx$" . typescript-mode)))(use-package tree-sitter:ensure t)(use-package tree-sitter-langs:after tree-sitter:ensure t)(comment(use-package tide:ensure t:config(add-hook 'js2-mode-hook 'tide-setup)(add-hook 'typescript-mode-hook 'fwoar/typescript-mode-hook)(add-hook 'js2-mode-hook 'tide-hl-identifier-mode)(comment(flycheck-add-next-checker 'javascript-eslint'javascript-tide'append))))(use-package rjsx-mode:ensure t:config(add-hook 'js2-mode-hook 'lsp)(define-key rjsx-mode-map (kbd "M-.") nil)(add-to-list 'auto-mode-alist '("\\.js$" . rjsx-mode)))(comment(use-package tern:config(add-hook 'js-mode-hook (lambda () (tern-mode t)))(add-hook 'js2-mode-hook (lambda () (tern-mode t))))(use-package company-tern:ensure t:config(add-to-list 'company-backends 'company-tern)(setq company-tooltip-align-annotations t)))(use-package jest:ensure t:config(defun jest--project-root ()"Find the project root directory."(let ((closest-package-json (fwoar--find-package-json))(projectile-root (projectile-project-root)))(message "%s <-> %s" closest-package-json projectile-root)(if (s-prefix-p projectile-root closest-package-json)closest-package-jsonprojectile-root))))(comment(use-package vue-mode:ensure t:config(add-hook 'vue-mode'prettier-js-mode)(add-hook 'vue-mode'flycheck-mode)))(use-package prettier-js:ensure t:delight " p":init(add-hook 'js2-mode-hook 'prettier-js-mode)(add-hook 'css-mode 'prettier-js-mode))(cl-defgeneric fwoar/test-on-save ()(:method ()))(defvar-local fwoar/*test-file-name* nil)(defun fwoar/trigger-jest ()(interactive)(when-let ((test-name (if fwoar/*test-file-name*fwoar/*test-file-name*(setq-local fwoar/*test-file-name*(if (projectile-test-file-p buffer-file-name)buffer-file-name(projectile-find-implementation-or-test buffer-file-name))))))(let ((proc (make-network-process:name "jest-comm":buffer "*jest-comm*":family 'local:service "/tmp/jest.sock")))(unwind-protect(process-send-string proc test-name)(delete-process proc)))))(cl-defmethod fwoar/test-on-save (&context (major-mode (derived-mode typescript-mode)))(fwoar/trigger-jest))(cl-defmethod fwoar/test-on-save (&context (major-mode (derived-mode js-mode)))(fwoar/trigger-jest))(defvar *tos-hook*(add-hook 'after-save-hook 'fwoar/test-on-save))