git.fiddlerwoaroof.com
Browse code

Update js information

Ed Langley authored on 01/07/2019 22:54:38
Showing 1 changed files
... ...
@@ -36,11 +36,6 @@
36 36
   (define-key evil-visual-state-map " m" 'mf/mirror-region-in-multifile)
37 37
   )
38 38
 
39
-(use-package tern
40
-  :config
41
-  (add-hook 'js-mode-hook (lambda () (tern-mode t)))
42
-  (add-hook 'js2-mode-hook (lambda () (tern-mode t))))
43
-
44 39
 (use-package org
45 40
   :pin "org"
46 41
   :ensure t
... ...
@@ -121,6 +116,58 @@
121 116
 
122 117
 
123 118
 
119
+(use-package js2-mode
120
+  :ensure t
121
+  :defer t
122
+  :commands js2-mode
123
+  :init
124
+  (progn
125
+    (add-to-list 'interpreter-mode-alist (cons "node" 'js2-mode))
126
+    (setq-default js2-basic-offset 4)
127
+    (setq-default js-indent-level 4)
128
+    (add-hook 'js2-mode-hook 'flycheck-mode)
129
+    (customize-set-variable 'js2-mode-show-parse-errors nil)
130
+    (customize-set-variable 'js2-strict-missing-semi-warning nil)
131
+    (customize-set-variable 'js2-strict-trailing-comma-warning nil)
132
+    (customize-set-variable 'js2-strict-inconsistent-return-warning nil)))
133
+
134
+(use-package vue-mode
135
+  :config
136
+  (add-hook 'vue-mode
137
+            'prettier-js-mode)
138
+  (add-hook 'vue-mode
139
+            'flycheck-mode))
140
+
141
+(use-package prettier-js
142
+  :ensure t
143
+  :init
144
+  (add-hook 'js2-mode-hook 'prettier-js-mode))
145
+
146
+(use-package tide
147
+  :ensure t
148
+  :config
149
+  (add-hook 'js2-mode-hook 'tide-setup)
150
+  (flycheck-add-next-checker 'javascript-eslint 'javascript-tide 'append))
151
+
152
+(use-package rjsx-mode
153
+  :ensure t
154
+  :config
155
+  (add-to-list 'auto-mode-alist '("\\.js$" . rjsx-mode)))
156
+
157
+(comment
158
+ (use-package tern
159
+   :config
160
+   (add-hook 'js-mode-hook (lambda () (tern-mode t)))
161
+   (add-hook 'js2-mode-hook (lambda () (tern-mode t))))
162
+
163
+ (use-package company-tern
164
+   :ensure t
165
+   :config
166
+   (add-to-list 'company-backends 'company-tern)
167
+   (setq company-tooltip-align-annotations t)))
168
+
169
+
170
+
124 171
 (defun more-than-one-project-file-p ()
125 172
   (= (length (projectile-select-files (projectile-current-project-files)))
126 173
      1))
... ...
@@ -319,7 +366,6 @@ With a prefix ARG invalidates the cache first."
319 366
 
320 367
   (add-hook 'smartparens-enabled-hook
321 368
             'evil-smartparens-mode))
322
- (vue-mode)
323 369
  (web-mode)
324 370
  (yaml-mode))
325 371
 
... ...
@@ -330,24 +376,6 @@ With a prefix ARG invalidates the cache first."
330 376
   :config
331 377
   (editorconfig-mode 1))
332 378
 
333
-(use-package js2-mode
334
-  :ensure t
335
-  :defer t
336
-  :commands js2-mode
337
-  :init
338
-  (progn
339
-    (add-to-list 'interpreter-mode-alist (cons "node" 'js2-mode))
340
-    (setq-default js2-basic-offset 4)
341
-    (setq-default js-indent-level 4)
342
-    (customize-set-variable 'js2-mode-show-parse-errors nil)
343
-    (customize-set-variable 'js2-strict-missing-semi-warning nil)
344
-    (customize-set-variable 'js2-strict-trailing-comma-warning nil)
345
-    (customize-set-variable 'js2-strict-inconsistent-return-warning nil)))
346
-
347
-(use-package rjsx-mode
348
-  :ensure t
349
-  :config
350
-  (add-to-list 'auto-mode-alist '("\\.js$" . rjsx-mode)))
351 379
 
352 380
 (define-key evil-normal-state-map "ZZ" 'save-buffer)
353 381
 
... ...
@@ -441,6 +469,75 @@ With a prefix ARG invalidates the cache first."
441 469
 
442 470
 ;;;;; junk drawer ....
443 471
 
472
+(defun js--looking-at-operator-p ()
473
+  "Return non-nil if point is on a JavaScript operator, other than a comma."
474
+  (save-match-data
475
+    (and (looking-at js--indent-operator-re)
476
+         (or (not (eq (char-after) ?:))
477
+             (save-excursion
478
+               (js--backward-syntactic-ws)
479
+               (when (memq (char-before) '(?\) ?})) (backward-list))
480
+               (and (js--re-search-backward "[?:{]\\|\\_<case\\_>" nil t)
481
+                    (eq (char-after) ??))))
482
+         (not (and
483
+               (eq (char-after) ?/)
484
+               (save-excursion
485
+                 (eq (nth 3 (syntax-ppss)) ?/))))
486
+         (not (and
487
+               (eq (char-after) ?*)
488
+               ;; Generator method (possibly using computed property).
489
+               (looking-at (concat "\\* *\\(?:\\[\\|" js--name-re " *(\\)"))
490
+               (save-excursion
491
+                 (js--backward-syntactic-ws)
492
+                 ;; We might misindent some expressions that would
493
+                 ;; return NaN anyway.  Shouldn't be a problem.
494
+                 (memq (char-before) '(?, ?} ?{))))))))
495
+
496
+
497
+(progn ;; workaround until this fixed: https://github.com/emacs-evil/evil/issues/1129
498
+  ;;                          or this: https://github.com/emacs-evil/evil/pull/1130
499
+  (defun config/fix-evil-window-move (orig-fun &rest args)
500
+    "Close Treemacs while moving windows around."
501
+    (let* ((treemacs-window (treemacs-get-local-window))
502
+           (is-active (and treemacs-window (window-live-p treemacs-window))))
503
+      (when is-active (treemacs))
504
+      (apply orig-fun args)
505
+      (when is-active
506
+        (save-selected-window
507
+          (treemacs)))))
508
+
509
+  (dolist (func '(evil-window-move-far-left evil-window-move-far-right evil-window-move-very-top evil-window-move-very-bottom))
510
+    (advice-add func :around #'config/fix-evil-window-move)))
511
+
512
+(defun fwoar--find-package-json ()
513
+  (expand-file-name
514
+   (locate-dominating-file default-directory
515
+                           (lambda (n)
516
+                             (directory-files n nil "^package.json$")))))
517
+
518
+
519
+
520
+(defun find-package-json (default-directory)
521
+  (interactive "D")
522
+  (message "pakcage json: %s"(fwoar--find-package-json))
523
+  (find-file (concat (fwoar--find-package-json)
524
+                     "/package.json")))
525
+
526
+(cl-defmethod fwoar--find-system (&context (major-mode (derived-mode js-mode)))
527
+  (find-package-json default-directory))
528
+
529
+(use-package jest
530
+  :ensure t
531
+  :config
532
+  (defun jest--project-root ()
533
+    "Find the project root directory."
534
+    (let ((closest-package-json (fwoar--find-package-json))
535
+          (projectile-root (projectile-project-root)))
536
+      (message "%s <-> %s" closest-package-json projectile-root)
537
+      (if (s-prefix-p projectile-root closest-package-json)
538
+          closest-package-json
539
+        projectile-root))))
540
+
444 541
 (comment
445 542
  (use-package paredit
446 543
    :ensure t