Skip to content

Commit

Permalink
elm; term-mode
Browse files Browse the repository at this point in the history
  • Loading branch information
JJPandari committed Dec 17, 2020
1 parent 2349d84 commit d9b123e
Show file tree
Hide file tree
Showing 10 changed files with 86 additions and 17 deletions.
3 changes: 2 additions & 1 deletion init.el
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,8 @@
(require 'init-css)
(require 'init-java)
;; (require 'init-python)
;; ;; (require 'init-haskell)
;; (require 'init-haskell)
(require 'init-elm)
;; (require 'init-ruby)
;; (require 'init-rails)
;; (require 'init-php)
Expand Down
19 changes: 10 additions & 9 deletions modes/init-editing-utils.el
Original file line number Diff line number Diff line change
Expand Up @@ -376,31 +376,32 @@ otherwise move to before semicolon."
;;----------------------------------------------------------------------------
;; move to bracket
;;----------------------------------------------------------------------------
(defvar jester-buffer-lang-has-generic-p-list nil
(defvar jester-buffer-has-generic-or-jsx-p-list nil
"Decides whether `jester/backward-bracket' and `jester/forward-bracket' will move to \"<\" and \">\",
by telling whether the language in current buffer has generic types (which are usually denoted by \"<T>\")")
(push (lambda () (eq major-mode 'rust-mode)) jester-buffer-lang-has-generic-p-list)
(push (lambda () (eq major-mode 'typescript-mode)) jester-buffer-lang-has-generic-p-list)
by telling whether the language in current buffer has generic types (which are usually denoted by \"<T>\") or jsx.")
(push (lambda () (eq major-mode 'rust-mode)) jester-buffer-has-generic-or-jsx-p-list)
(push (lambda () (eq major-mode 'typescript-mode)) jester-buffer-has-generic-or-jsx-p-list)
(push (lambda () (eq major-mode 'rjsx-mode)) jester-buffer-has-generic-or-jsx-p-list)
(push (lambda () (and (buffer-file-name)
(member (file-name-extension (buffer-file-name))
'("ts" "tsx"))))
jester-buffer-lang-has-generic-p-list)
jester-buffer-has-generic-or-jsx-p-list)
(evil-define-motion jester/backward-bracket (count)
"Move backward to a (, [ or {. Maybe <, if any of `jester-buffer-lang-has-generic-p-list' yields t."
"Move backward to a (, [ or {. Maybe <, if any of `jester-buffer-has-generic-or-jsx-p-list' yields t."
;; TODO enable lispyville everywhere
:type exclusive
(setq count (or count 1))
(search-backward-regexp (if (cl-some (lambda (p) (funcall p)) jester-buffer-lang-has-generic-p-list)
(search-backward-regexp (if (cl-some (lambda (p) (funcall p)) jester-buffer-has-generic-or-jsx-p-list)
"[([{<]"
"[([{]")
nil t count))

(evil-define-motion jester/forward-bracket (count)
"Move forward to a ), ] or }. Maybe >, if any of `jester-buffer-lang-has-generic-p-list' yields t."
"Move forward to a ), ] or }. Maybe >, if any of `jester-buffer-has-generic-or-jsx-p-list' yields t."
:type exclusive
(setq count (or count 1))
(forward-char)
(search-forward-regexp (if (cl-some (lambda (p) (funcall p)) jester-buffer-lang-has-generic-p-list)
(search-forward-regexp (if (cl-some (lambda (p) (funcall p)) jester-buffer-has-generic-or-jsx-p-list)
"[]})>]"
"[]})]")
nil t count)
Expand Down
15 changes: 15 additions & 0 deletions modes/init-elm.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
(use-package elm-mode
:custom (elm-indent-offset 2)
:config
(general-define-key
:states '(insert emacs)
:keymaps 'elm-mode-map
"C-j" 'elm-indent-insert-equal))

(use-package flycheck-elm
:after elm-mode
:demand t
:config
(flycheck-elm-setup))

(provide 'init-elm)
2 changes: 2 additions & 0 deletions modes/init-evil.el
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,7 @@
:last-key "L"
:remote-key "r")

;; TODO expand-region is more reliable, investigate
(targets-define-composite-to pair-delimiter
(("(" ")" pair)
("[" "]" pair)
Expand Down Expand Up @@ -506,6 +507,7 @@
;;----------------------------------------------------------------------------
;; Some functions.
;;----------------------------------------------------------------------------
;; TODO use symbol-overlay ... or?
(evil-define-command jester/evil-normal-search-forward (&optional count)
"Search symbol under point forward."
:repeat nil
Expand Down
3 changes: 0 additions & 3 deletions modes/init-haskell.el
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,7 @@


(when (maybe-require-package 'dhall-mode)
(add-hook 'dhall-mode-hook 'jester/no-trailing-whitespace)
(add-hook 'dhall-mode-hook 'stack-exec-path-mode))




(provide 'init-haskell)
2 changes: 1 addition & 1 deletion modes/init-lsp.el
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
(lsp-enable-symbol-highlighting nil)
(lsp-prefer-capf nil)
:init
:hook ((rust-mode . lsp) (typescript-mode . lsp))
:hook ((rust-mode . lsp) (typescript-mode . lsp) (elm-mode . lsp))
:commands (lsp lsp-deferred))
;; TODO add a hook to 'lsp-completion-mode to fix company-backends (hook does sth when 'jester-tabnine-active-modes)

Expand Down
2 changes: 1 addition & 1 deletion modes/init-mode-line.el
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@
'(:eval (propertize " ❚%2c" 'face `(:foreground ,(face-attribute 'font-lock-type-face :foreground))))

" %1"
'(:eval buffer-file-coding-system)
'(:eval (symbol-name buffer-file-coding-system))

;; size of file
'(:eval (propertize " %I" 'face `(:foreground ,(face-attribute 'font-lock-constant-face :foreground))))
Expand Down
1 change: 1 addition & 0 deletions modes/init-paredit.el
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
:init
(general-define-key
:states '(insert emacs)
:keymaps 'prog-mode-map
;; "(" 'awesome-pair-open-round
;; "[" 'awesome-pair-open-bracket
;; "{" 'awesome-pair-open-curly
Expand Down
53 changes: 52 additions & 1 deletion modes/init-shell.el
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,17 @@

(add-hook 'comint-mode-hook 'jester/set-shell-buffer-face)
(add-hook 'eshell-mode-hook 'jester/set-shell-buffer-face)
(add-hook 'term-mode-hook 'jester/set-shell-buffer-face)

(defun jester/shell-for-node.js ()
"For buffer file, look up directories and find package.json, open a shell there."
(interactive)
(let ((default-directory (locate-dominating-file (buffer-file-name) "package.json")))
(eshell)))


;;----------------------------------------------------------------------------
;; eshell
;;----------------------------------------------------------------------------
(push (expand-file-name "aweshell" jester-submodules-dir) load-path)
(use-package aweshell
:ensure nil
Expand All @@ -46,5 +49,53 @@
(with-eval-after-load "esh-opt"
(setq eshell-prompt-function 'epe-theme-pipeline)))

;;----------------------------------------------------------------------------
;; ansi-term
;;----------------------------------------------------------------------------
(use-package term
:ensure nil
:init
(jester/with-leader "t n" (lambda! (ansi-term "/bin/zsh")))
:custom (term-prompt-regexp "^[^#$%>\n]*[#$%>] *")
:config
;; unleash some keys
(general-define-key
:keymaps 'term-raw-map
"M-:" nil
"M-x" nil
"C-h" nil
"C-s" nil)
;; re-override keys overriden by evil
(general-define-key
:states '(insert emacs)
:keymaps 'term-raw-map
"<tab>" (lambda! (term-send-raw-string "\t"))
"C-a" 'term-send-raw
"C-e" 'term-send-raw
"C-n" 'term-send-raw
"C-p" 'term-send-raw
"C-f" 'term-send-raw
"C-d" 'term-send-raw
"C-w" 'term-send-raw
"C-k" 'term-send-raw
"C-r" 'term-send-raw
"C-t" 'term-send-raw
"C-v" 'term-paste
"C-/" (lambda! (term-send-raw-string "\C-_"))
"C-c" 'term-interrupt-subjob
"M-c" 'term-send-raw-meta
"M-f" 'term-send-raw-meta
"M-d" 'term-send-raw-meta
"M-b" 'term-send-raw-meta
"<escape>" (lambda! (term-line-mode) (evil-motion-state)))
(general-define-key
:states '(normal motion)
:keymaps '(term-raw-map term-mode-map)
"<return>" 'switch-to-buffer)
(general-define-key
:states '(normal motion)
:keymaps 'term-mode-map
"a" (lambda! (evil-insert-state) (term-char-mode))))


(provide 'init-shell)
3 changes: 2 additions & 1 deletion modes/init-web.el
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
(use-package web-mode
:init
(after-load 'flycheck
(flycheck-add-mode 'javascript-eslint 'web-mode))
(flycheck-add-mode 'javascript-eslint 'web-mode)
(flycheck-add-mode 'xml-xmllint 'web-mode))
:mode ("\\.tsx\\'" "\\.vue\\'" "\\.blade.php\\'" "\\.html\\'" "\\.xml\\'" "\\.xhtml\\'")
:config
(general-define-key
Expand Down

0 comments on commit d9b123e

Please sign in to comment.