Massive refactor. Refactor all the things
This commit is contained in:
parent
03514fc09d
commit
f234be68a4
56 changed files with 792 additions and 831 deletions
|
@ -9,6 +9,19 @@
|
|||
'+
|
||||
'++))))
|
||||
|
||||
;;;###autoload
|
||||
(defun narf/c-lineup-arglist (orig-fun &rest args)
|
||||
"Improve indentation of continued C++11 lambda function opened as argument."
|
||||
(if (and (eq major-mode 'c++-mode)
|
||||
(ignore-errors
|
||||
(save-excursion
|
||||
(goto-char (c-langelem-pos langelem))
|
||||
;; Detect "[...](" or "[...]{". preceded by "," or "(",
|
||||
;; and with unclosed brace.
|
||||
(looking-at ".*[(,][ \t]*\\[[^]]*\\][ \t]*[({][^}]*$"))))
|
||||
0 ; no additional indent
|
||||
(apply orig-fun args)))
|
||||
|
||||
;;;###autoload
|
||||
(defun narf|init-c/c++-settings ()
|
||||
(when (memq major-mode '(c-mode c++-mode objc-mode))
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
;;; extra-ansible.el
|
||||
|
||||
(define-project-type! ansible-mode "ans"
|
||||
(def-project-type! ansible-mode "ans"
|
||||
:modes (yaml-mode)
|
||||
:files ("roles/"))
|
||||
|
||||
(use-package company-ansible
|
||||
:commands (company-ansible)
|
||||
:init (define-company-backend! ansible-mode (ansible)))
|
||||
:init (def-company-backend! ansible-mode (ansible)))
|
||||
|
||||
(provide 'extra-ansible)
|
||||
;;; module-ansible.el ends here
|
||||
|
|
|
@ -3,15 +3,17 @@
|
|||
;; This library offers:
|
||||
;; + impatient-mode: for broadcasting my emacs session
|
||||
;; + big-mode: for enlarged text while screencasting
|
||||
;; + integration with reveal.js for presentations
|
||||
;; + TODO integration with reveal.js for presentations
|
||||
;; + TODO peer programming collab
|
||||
|
||||
(defvar powerline-height)
|
||||
|
||||
;; Big-mode settings
|
||||
(defconst big-mode-font (font-spec :family "Hack" :size 16))
|
||||
(defconst big-mode-line-spacing 0)
|
||||
(defconst big-mode-modeline-height 26)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
(defconst big-mode-modeline-height 30)
|
||||
|
||||
;;
|
||||
(use-package impatient-mode
|
||||
:defer t
|
||||
:commands httpd-start)
|
||||
|
|
10
modules/extra-text.el
Normal file
10
modules/extra-text.el
Normal file
|
@ -0,0 +1,10 @@
|
|||
;;; extra-text.el
|
||||
|
||||
;; TODO
|
||||
(evil-define-operator narf/html-encode (beg end)
|
||||
"HTML encode the selected region."
|
||||
(interactive "<r>")
|
||||
(shell-command-on-region beg end "sort" nil t))
|
||||
|
||||
(provide 'extra-text)
|
||||
;;; extra-text.el ends here
|
|
@ -1,10 +1,8 @@
|
|||
;;; extra-tmux.el
|
||||
|
||||
;; This library offers:
|
||||
;; + TODO An integration/abstraction layer to make it seem like tmux and emacs are one
|
||||
;; program.
|
||||
;; + TODO A way to manage tmux sessions and layouts from emacs; possibly trigger them
|
||||
;; depending on current project.
|
||||
;; + A way of communicating with a tmux instance
|
||||
;; + TODO A way to manage tmuxifier from emacs
|
||||
|
||||
;;;###autoload
|
||||
(defun tmux (command &optional modes)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;; module-write.el
|
||||
;; extra-write.el
|
||||
|
||||
;; This library offers the following:
|
||||
;; + Write-mode: a mode that turns Emacs into an app for writing notes, papers, or
|
||||
|
@ -14,14 +14,7 @@
|
|||
(defconst write-mode--last-mode-line mode-line-format)
|
||||
(defconst write-mode--last-line-spacing line-spacing)
|
||||
|
||||
;; (defvar write-mode-org-font-lock-keywords
|
||||
;; `(("[-+*] \\[X\\] \\([^$\n\r]+\\)"
|
||||
;; (1 'org-headline-done))
|
||||
;; ("^ *\\([-+]\\|[0-9]+[).]\\)\\( \\)+[^$\n\r]"
|
||||
;; (1 'org-list-bullet))))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;;
|
||||
(setq-default visual-fill-column-center-text nil
|
||||
visual-fill-column-width 80)
|
||||
|
||||
|
@ -93,43 +86,6 @@ functionality with buffer-local ones, which can be buggy in a minor-mode."
|
|||
(visual-fill-column--adjust-window))))
|
||||
(apply fn window args))))
|
||||
|
||||
;;; LaTeX
|
||||
(setq TeX-auto-save t)
|
||||
(setq TeX-parse-self t)
|
||||
(setq bibtex-dialect 'biblatex)
|
||||
(setq bibtex-align-at-equal-sign t)
|
||||
(setq bibtex-text-indentation 20)
|
||||
(add-hook! bibtex-mode
|
||||
(local-set-key (kbd "C-c \\") 'bibtex-fill-entry)
|
||||
(setq fill-column 140))
|
||||
(add-hook! latex-mode 'turn-on-auto-fill)
|
||||
(add-hook! LaTeX-mode 'turn-on-auto-fill)
|
||||
|
||||
(use-package reftex
|
||||
:config
|
||||
(add-hook 'latex-mode-hook 'turn-on-reftex)
|
||||
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
|
||||
(setq reftex-plug-into-AUCTeX t
|
||||
reftex-ref-style-default-list '("Cleveref" "Hyperref" "Fancyref")
|
||||
reftex-default-bibliography
|
||||
`(,(expand-file-name "phys.bib" write-mode-biblio-dir))))
|
||||
|
||||
;;; Bibtex
|
||||
;; NOTE: http://bibdesk.sourceforge.net/
|
||||
(use-package helm-bibtex
|
||||
:defer t
|
||||
:config
|
||||
(setq helm-bibtex-bibliography
|
||||
`(,(expand-file-name "phys.bib" write-mode-biblio-dir))
|
||||
|
||||
helm-bibtex-library-path
|
||||
`(,(expand-file-name "phys-pdf" write-mode-biblio-dir))
|
||||
|
||||
helm-bibtex-notes-path (expand-file-name "notes" write-mode-biblio-dir)
|
||||
helm-bibtex-notes-extension ".org"
|
||||
|
||||
helm-bibtex-pdf-open-function
|
||||
(lambda (fpath) (async-start-process "open-pdf" "/usr/bin/open" nil fpath))))
|
||||
|
||||
(provide 'module-write)
|
||||
;;; module-write.el ends here
|
||||
(provide 'extra-write)
|
||||
;;; extra-write.el ends here
|
|
@ -7,7 +7,7 @@
|
|||
;; LaunchBar: https://www.obdev.at/products/launchbar
|
||||
;;
|
||||
|
||||
(define-project-type! lb6 "lb6"
|
||||
(def-project-type! lb6 "lb6"
|
||||
:match "\\.lb\\(action\\|ext\\)/.+$"
|
||||
:build (lambda ()
|
||||
(awhen (f-traverse-upwards (lambda (f) (f-ext? f "lbaction")))
|
||||
|
@ -21,12 +21,14 @@
|
|||
;; TODO Set up emacs task runners for fruitstrap
|
||||
(use-package swift-mode
|
||||
:mode "\\.swift$"
|
||||
:init (add-hook 'swift-mode-hook 'flycheck-mode)
|
||||
:init
|
||||
(def-company-backend! swift-mode (sourcekit yasnippet))
|
||||
(add-hook 'swift-mode-hook 'flycheck-mode)
|
||||
:config
|
||||
(after! flycheck (push 'swift flycheck-checkers))
|
||||
(push 'swift flycheck-checkers))
|
||||
|
||||
(require 'company-sourcekit)
|
||||
(define-company-backend! swift-mode (sourcekit yasnippet)))
|
||||
(use-package company-sourcekit
|
||||
:after swift-mode)
|
||||
|
||||
(provide 'module-apple)
|
||||
;;; module-apple.el ends here
|
||||
|
|
|
@ -1,61 +1,13 @@
|
|||
;;; module-cc.el --- C, C++, and Objective-C
|
||||
|
||||
(use-package cmake-mode
|
||||
:mode "CMakeLists\\.txt$"
|
||||
:config
|
||||
(require 'company-cmake)
|
||||
(define-company-backend! cmake-mode (cmake yasnippet)))
|
||||
|
||||
(use-package glsl-mode :mode ("\\.glsl\\'" "\\.vert\\'" "\\.frag\\'" "\\.geom\\'"))
|
||||
|
||||
(use-package cuda-mode :mode "\\.cuh?$")
|
||||
|
||||
(use-package cc-mode
|
||||
:defines (c-syntactic-context)
|
||||
:functions (c-toggle-electric-state c-toggle-auto-newline
|
||||
c-skip-comments-and-strings c-forward-sws c-end-of-macro
|
||||
c-font-lock-invalid-string csharp-log c-font-lock-declarators
|
||||
c-get-lang-constant c-forward-keyword-clause
|
||||
c-fontify-recorded-types-and-refs c-forward-type imenu--split
|
||||
c-backward-sws c-determine-limit c-beginning-of-decl-1)
|
||||
:commands (c-mode c++-mode objc-mode java-mode)
|
||||
:init
|
||||
(associate! objc-mode :match "\\.mm$")
|
||||
(def-electric! (c-mode c++-mode objc-mode) :chars (?\n ?\}))
|
||||
(def-company-backend! (c-mode c++-mode objc-mode) (irony-c-headers irony))
|
||||
(add-hook! 'c++-mode-hook '(highlight-numbers-mode narf|init-c++-C11-highlights))
|
||||
(add-hook 'c-initialization-hook 'narf|init-c/c++-settings)
|
||||
(add-hook 'c++-mode-hook 'highlight-numbers-mode)
|
||||
(add-hook 'c++-mode-hook 'narf|init-c++-C11-highlights)
|
||||
:config
|
||||
(setq c-tab-always-indent nil
|
||||
c-electric-flag nil)
|
||||
|
||||
(map! :map c-mode-base-map
|
||||
(:localleader :nv ";" 'narf/append-semicolon))
|
||||
|
||||
(define-text-object! "<" "<" ">")
|
||||
(sp-local-pair '(c-mode c++-mode) "<" ">" :when '(narf/sp-point-is-template-p narf/sp-point-after-include-p))
|
||||
(sp-with-modes '(c-mode c++-mode objc-mode java-mode)
|
||||
(sp-local-pair "/*" "*/" :post-handlers '(("||\n[i]" "RET") ("| " "SPC")))
|
||||
;; Doxygen blocks
|
||||
(sp-local-pair "/**" "*/" :post-handlers '(("||\n[i]" "RET") ("||\n[i]" "SPC")))
|
||||
(sp-local-pair "/*!" "*/" :post-handlers '(("||\n[i]" "RET") ("[d-1]< | " "SPC"))))
|
||||
|
||||
(add-hook! (c-mode c++-mode objc-mode)
|
||||
(electric-indent-local-mode +1)
|
||||
(setq electric-indent-chars '(?\n ?})))
|
||||
|
||||
;; C/C++
|
||||
(advice-add 'c-lineup-arglist :around 'narf/c-lineup-arglist)
|
||||
(defun narf/c-lineup-arglist (orig-fun &rest args)
|
||||
"Improve indentation of continued C++11 lambda function opened as argument."
|
||||
(if (and (eq major-mode 'c++-mode)
|
||||
(ignore-errors
|
||||
(save-excursion
|
||||
(goto-char (c-langelem-pos langelem))
|
||||
;; Detect "[...](" or "[...]{". preceded by "," or "(",
|
||||
;; and with unclosed brace.
|
||||
(looking-at ".*[(,][ \t]*\\[[^]]*\\][ \t]*[({][^}]*$"))))
|
||||
0 ; no additional indent
|
||||
(apply orig-fun args)))
|
||||
|
||||
;; C++ header files
|
||||
(push `(,(lambda () (and (f-ext? buffer-file-name "h")
|
||||
|
@ -71,29 +23,54 @@
|
|||
. objc-mode)
|
||||
magic-mode-alist)
|
||||
|
||||
(use-package irony
|
||||
:config
|
||||
(setq irony-server-install-prefix (concat narf-temp-dir "/irony/"))
|
||||
(push "-std=c++11" irony-additional-clang-options)
|
||||
:config
|
||||
(setq c-tab-always-indent nil
|
||||
c-electric-flag nil)
|
||||
|
||||
(require 'irony-eldoc)
|
||||
(map! :map c-mode-base-map (:localleader :nv ";" 'narf/append-semicolon))
|
||||
|
||||
(require 'flycheck-irony)
|
||||
(flycheck-irony-setup)
|
||||
(def-textobj! "<" "<" ">")
|
||||
(sp-with-modes '(c-mode c++-mode objc-mode java-mode)
|
||||
(sp-local-pair "<" ">" :when '(narf/sp-point-is-template-p narf/sp-point-after-include-p))
|
||||
(sp-local-pair "/*" "*/" :post-handlers '(("||\n[i]" "RET") ("| " "SPC")))
|
||||
;; Doxygen blocks
|
||||
(sp-local-pair "/**" "*/" :post-handlers '(("||\n[i]" "RET") ("||\n[i]" "SPC")))
|
||||
(sp-local-pair "/*!" "*/" :post-handlers '(("||\n[i]" "RET") ("[d-1]< | " "SPC"))))
|
||||
|
||||
(require 'company-irony)
|
||||
(require 'company-irony-c-headers)
|
||||
(define-company-backend! c-mode (irony-c-headers irony))
|
||||
(define-company-backend! c++-mode (irony-c-headers irony))
|
||||
(define-company-backend! objc-mode (irony-c-headers irony))
|
||||
;; Improve indentation of inline lambdas in C++11
|
||||
(advice-add 'c-lineup-arglist :around 'narf/c-lineup-arglist))
|
||||
|
||||
;; some c-mode dervied modes wrongfully trigger these hooks (like php-mode)
|
||||
(add-hook! (c-mode c++-mode ojbc-mode)
|
||||
(when (memq major-mode '(c-mode c++-mode objc-mode))
|
||||
(flycheck-mode +1)
|
||||
(irony-mode +1)
|
||||
(eldoc-mode +1)
|
||||
(irony-eldoc +1)))))
|
||||
(use-package irony
|
||||
:after cc-mode
|
||||
:config
|
||||
(setq irony-server-install-prefix (concat narf-temp-dir "/irony/"))
|
||||
(push "-std=c++11" irony-additional-clang-options)
|
||||
|
||||
(require 'irony-eldoc)
|
||||
(require 'company-irony)
|
||||
(require 'company-irony-c-headers)
|
||||
(require 'flycheck-irony)
|
||||
(flycheck-irony-setup)
|
||||
|
||||
;; some c-mode dervied modes wrongfully trigger these hooks (like php-mode)
|
||||
(add-hook! (c-mode c++-mode ojbc-mode)
|
||||
(when (memq major-mode '(c-mode c++-mode objc-mode))
|
||||
(flycheck-mode +1)
|
||||
(irony-mode +1)
|
||||
(eldoc-mode +1)
|
||||
(irony-eldoc +1))))
|
||||
|
||||
(use-package disaster :commands (disaster))
|
||||
|
||||
;;
|
||||
(use-package cmake-mode
|
||||
:mode "CMakeLists\\.txt$"
|
||||
:init (def-company-backend! cmake-mode (cmake yasnippet)))
|
||||
(use-package company-cmake :after cmake-mode)
|
||||
|
||||
(use-package glsl-mode :mode ("\\.glsl\\'" "\\.vert\\'" "\\.frag\\'" "\\.geom\\'"))
|
||||
|
||||
(use-package cuda-mode :mode "\\.cuh?$")
|
||||
|
||||
(provide 'module-cc)
|
||||
;;; module-cc.el ends here
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
;;; module-csharp.el
|
||||
|
||||
(use-package csharp-mode
|
||||
:functions (csharp-log)
|
||||
:mode "\\.cs$"
|
||||
:init (add-hook 'csharp-mode-hook 'flycheck-mode))
|
||||
|
||||
;; unity shaders
|
||||
(use-package shader-mode :mode "\\.shader$")
|
||||
(use-package shader-mode :mode "\\.shader$") ; unity shaders
|
||||
|
||||
(use-package omnisharp
|
||||
:commands (omnisharp-mode)
|
||||
|
@ -15,7 +13,8 @@
|
|||
omnisharp-server-executable-path (concat narf-ext-dir "/OmniSharp.exe"))
|
||||
:when (file-exists-p omnisharp-server-executable-path)
|
||||
:init
|
||||
(add-hook! csharp-mode '(emr-initialize omnisharp-mode))
|
||||
(def-company-backend! csharp-mode (omnisharp))
|
||||
(add-hook! csharp-mode '(turn-on-eldoc-mode emr-initialize omnisharp-mode))
|
||||
:config
|
||||
(map! :map omnisharp-mode-map
|
||||
"gd" 'omnisharp-go-to-definition
|
||||
|
@ -24,9 +23,6 @@
|
|||
"ts" (λ! (omnisharp-unit-test "single"))
|
||||
"ta" (λ! (omnisharp-unit-test "all"))))
|
||||
|
||||
(define-company-backend! csharp-mode (omnisharp))
|
||||
(add-hook! csharp-mode 'turn-on-eldoc-mode)
|
||||
|
||||
;; Map all refactor commands (see emr)
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
|
|
|
@ -1,48 +1,45 @@
|
|||
;;; module-go.el
|
||||
|
||||
(use-package gorepl-mode :commands (gorepl-run gorepl-run-load-current-file))
|
||||
|
||||
(use-package go-mode
|
||||
:mode "\\.go$"
|
||||
:interpreter "go"
|
||||
:init
|
||||
(add-hook! go-mode '(emr-initialize flycheck-mode))
|
||||
(define-builder! go-mode "go build")
|
||||
(define-repl! go-mode gorepl-run)
|
||||
(def-builder! go-mode "go build")
|
||||
(def-company-backend! go-mode (go yasnippet))
|
||||
(def-repl! go-mode gorepl-run)
|
||||
(add-hook! go-mode '(emr-initialize flycheck-mode go-eldoc-setup))
|
||||
|
||||
:config
|
||||
(after! emr
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
(title (cadr x))
|
||||
(region-p (caddr x))
|
||||
predicate)
|
||||
(setq predicate (cond ((eq region-p 'both) nil)
|
||||
(t (if region-p
|
||||
(lambda () (use-region-p))
|
||||
(lambda () (not (use-region-p)))))))
|
||||
(emr-declare-command (intern (symbol-name command-name))
|
||||
:title title :modes 'go-mode :predicate predicate)))
|
||||
'((go-remove-unused-imports "Remove unushed imports" nil)
|
||||
(gofmt "Format code" nil))))
|
||||
|
||||
(after! helm
|
||||
(use-package helm-go-package :defer t))
|
||||
|
||||
(require 'go-eldoc)
|
||||
(add-hook 'go-mode-hook 'go-eldoc-setup)
|
||||
|
||||
(require 'company-go)
|
||||
(define-company-backend! go-mode (go yasnippet))
|
||||
|
||||
(map! :map go-mode-map
|
||||
:n "gd" 'godef-jump
|
||||
:n "gD" 'godef-describe
|
||||
(:localleader
|
||||
:n "p" 'helm-go-package
|
||||
:n "tr" 'narf:go-test-run-all
|
||||
:n "ta" 'narf:go-test-run-all
|
||||
:n "ts" 'narf:go-test-run-package)))
|
||||
:n "p" 'helm-go-package
|
||||
:n "tr" 'narf:go-test-run-all
|
||||
:n "ta" 'narf:go-test-run-all
|
||||
:n "ts" 'narf:go-test-run-package))
|
||||
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
(title (cadr x))
|
||||
(region-p (caddr x))
|
||||
predicate)
|
||||
(setq predicate (cond ((eq region-p 'both) nil)
|
||||
(t (if region-p
|
||||
(lambda () (use-region-p))
|
||||
(lambda () (not (use-region-p)))))))
|
||||
(emr-declare-command (intern (symbol-name command-name))
|
||||
:title title :modes 'go-mode :predicate predicate)))
|
||||
'((go-remove-unused-imports "Remove unushed imports" nil)
|
||||
(gofmt "Format code" nil))))
|
||||
|
||||
(use-package go-eldoc :after go-mode)
|
||||
|
||||
(use-package company-go :after go-mode)
|
||||
|
||||
(use-package gorepl-mode :commands (gorepl-run gorepl-run-load-current-file))
|
||||
|
||||
(use-package helm-go-package :commands helm-go-package)
|
||||
|
||||
(provide 'module-go)
|
||||
;;; module-go.el ends here
|
||||
|
|
|
@ -7,14 +7,13 @@
|
|||
:interpreter (("runghc" . haskell-mode)
|
||||
("runhaskell" . haskell-mode))
|
||||
:init
|
||||
(define-repl! haskell-mode switch-to-haskell)
|
||||
(def-repl! haskell-mode switch-to-haskell)
|
||||
(add-hook! haskell-mode '(interactive-haskell-mode flycheck-mode))
|
||||
:config
|
||||
(push ".hi" completion-ignored-extensions))
|
||||
|
||||
(use-package inf-haskell
|
||||
:commands (inferior-haskell-mode inf-haskell-mode switch-to-haskell)
|
||||
:init (evil-set-initial-state 'inferior-haskell-mode 'emacs)
|
||||
:config
|
||||
(map! :map inf-haskell-mode-map "ESC ESC" 'narf/popup-close))
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
;;; module-java.el --- the poster child for carpal tunnel
|
||||
|
||||
(define-docset! java-mode "java,droid,javafx,grails,groovy,playjava,spring,cvj,processing,javadoc")
|
||||
(def-docset! java-mode "java,droid,javafx,grails,groovy,playjava,spring,cvj,processing,javadoc")
|
||||
|
||||
(use-package eclim
|
||||
:functions (eclim--project-dir eclim--project-name)
|
||||
:commands (eclim-mode global-eclim-mode)
|
||||
:init
|
||||
:preface
|
||||
(setq eclim-eclipse-dirs '("/Applications/eclipse")
|
||||
eclim-executable "/Applications/eclipse/eclim")
|
||||
(when (file-exists-p eclim-executable)
|
||||
(add-hook 'java-mode-hook 'eclim-mode))
|
||||
:when (file-exists-p eclim-executable)
|
||||
:init (add-hook 'java-mode-hook 'eclim-mode)
|
||||
:config
|
||||
;; (require 'eclim-ant)
|
||||
;; (require 'eclim-maven)
|
||||
|
@ -20,25 +20,24 @@
|
|||
(setq help-at-pt-timer-delay 0.1)
|
||||
(help-at-pt-set-timer)
|
||||
|
||||
(use-package company-emacs-eclim
|
||||
:functions company-emacs-eclim-setup
|
||||
:config (company-emacs-eclim-setup))
|
||||
|
||||
(map! :map java-mode-map :m "gd" 'eclim-java-find-declaration))
|
||||
|
||||
(use-package company-emacs-eclim
|
||||
:after eclim
|
||||
:config (company-emacs-eclim-setup))
|
||||
|
||||
(use-package android-mode
|
||||
:commands android-mode
|
||||
:init
|
||||
(after! company-dict (add-to-list 'company-dict-minor-mode-list 'android-mode))
|
||||
(def-yas-mode! 'android-mode)
|
||||
(add-hook! (java-mode groovy-mode nxml-mode) 'narf|android-mode-enable-maybe)
|
||||
(add-hook! android-mode (add-yas-minor-mode! 'android-mode)))
|
||||
:config
|
||||
(after! company-dict
|
||||
(push 'android-mode company-dict-minor-mode-list)))
|
||||
|
||||
(use-package groovy-mode
|
||||
:functions (is-groovy-mode)
|
||||
:mode "\\.g\\(radle\\|vy\\|roovy\\)$")
|
||||
(use-package groovy-mode :mode "\\.g\\(radle\\|vy\\|roovy\\)$")
|
||||
|
||||
(use-package scala-mode2
|
||||
:mode ("\\.s\\(cala\\|bt\\)$" . scala-mode))
|
||||
(use-package scala-mode2 :mode ("\\.s\\(cala\\|bt\\)$" . scala-mode))
|
||||
|
||||
(provide 'module-java)
|
||||
;;; module-java.el ends here
|
||||
|
|
|
@ -4,15 +4,11 @@
|
|||
:mode "\\.js$"
|
||||
:interpreter "node"
|
||||
:init
|
||||
(add-hook 'js2-mode-hook '(tern-mode emr-initialize))
|
||||
(define-repl! js2-mode nodejs-repl)
|
||||
(define-docset! js2-mode "js,javascript,nodejs,angularjs,express,jquery,mongoose")
|
||||
(define-company-backend! js2-mode (tern))
|
||||
|
||||
(add-hook! js2-mode
|
||||
(electric-indent-local-mode +1)
|
||||
(setq electric-indent-chars '(?} ?\) ?.)
|
||||
narf-electric-indent-words '("||" "&&")))
|
||||
(def-repl! js2-mode nodejs-repl)
|
||||
(def-docset! js2-mode "js,javascript,nodejs,angularjs,express,jquery,mongoose")
|
||||
(def-company-backend! js2-mode (tern))
|
||||
(def-electric! js2-mode :chars (?\} ?\) ?.) :words ("||" "&&"))
|
||||
(add-hook! js2-mode '(tern-mode emr-initialize))
|
||||
|
||||
:config
|
||||
(setq-default
|
||||
|
@ -25,17 +21,21 @@
|
|||
;; Launchbar API
|
||||
"LaunchBar" "File" "Action" "HTTP" "include" "Lib"))
|
||||
|
||||
(require 'tern)
|
||||
(require 'company-tern)
|
||||
|
||||
;; [pedantry intensifies]
|
||||
(defadvice js2-mode (after js2-mode-rename-modeline activate)
|
||||
(setq mode-name "JS2"))
|
||||
(add-hook! js2-mode (setq mode-name "JS2"))
|
||||
|
||||
(map! :map js2-mode-map (:localleader :nv ";" 'narf/append-semicolon))
|
||||
(map! :map js2-mode-map (:localleader :nv ";" 'narf/append-semicolon)))
|
||||
|
||||
(require 'js2-refactor)
|
||||
(require 'emr)
|
||||
(use-package tern
|
||||
:after js2-mode
|
||||
:commands (tern-mode))
|
||||
|
||||
(use-package company-tern
|
||||
:after tern)
|
||||
|
||||
(use-package js2-refactor
|
||||
:after js2-mode
|
||||
:config
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
(title (cadr x))
|
||||
|
@ -46,8 +46,8 @@
|
|||
(lambda () (use-region-p))
|
||||
(lambda () (not (use-region-p)))))))
|
||||
(emr-declare-command
|
||||
(intern (format "js2r-%s" (symbol-name command-name)))
|
||||
:title title :modes 'js2-mode :predicate predicate)))
|
||||
(intern (format "js2r-%s" (symbol-name command-name)))
|
||||
:title title :modes 'js2-mode :predicate predicate)))
|
||||
'((extract-function "extract function" t)
|
||||
(extract-method "extract method" t)
|
||||
(introduce-parameter "introduce parameter" t)
|
||||
|
@ -75,6 +75,9 @@
|
|||
(forward-slurp "forward slurp" nil)
|
||||
(forward-barf "forward barf" nil))))
|
||||
|
||||
(use-package nodejs-repl :commands (nodejs-repl))
|
||||
|
||||
;;
|
||||
(use-package jsx-mode :mode "\\.jsx$")
|
||||
|
||||
(use-package unityjs-mode
|
||||
|
@ -85,25 +88,21 @@
|
|||
:mode "\\.coffee$"
|
||||
:config (setq-default coffee-indent-like-python-mode t))
|
||||
|
||||
(use-package nodejs-repl
|
||||
:commands (nodejs-repl)
|
||||
:config (evil-set-initial-state 'nodejs-repl-mode 'emacs))
|
||||
|
||||
;;
|
||||
(define-project-type! nodejs "node"
|
||||
(def-project-type! nodejs "node"
|
||||
:modes (web-mode js-mode js2-mode json-mode coffee-mode scss-mode sass-mode less-css-mode)
|
||||
:files ("package.json"))
|
||||
|
||||
(define-project-type! angularjs "angular"
|
||||
(def-project-type! angularjs "angular"
|
||||
:modes (web-mode js-mode js2-mode json-mode coffee-mode scss-mode sass-mode less-css-mode)
|
||||
:files ("public/libraries/angular/"))
|
||||
|
||||
(define-project-type! electron "electron"
|
||||
(def-project-type! electron "electron"
|
||||
:modes (nodejs-project-mode)
|
||||
:files ("app/index.html" "app/main.js"))
|
||||
;; TODO electron-compile support
|
||||
|
||||
(define-project-type! expressjs "express"
|
||||
(def-project-type! expressjs "express"
|
||||
:modes (nodejs-project-mode)
|
||||
:files ("node_modules/express/"))
|
||||
|
||||
|
|
|
@ -3,10 +3,7 @@
|
|||
(use-package julia-mode
|
||||
:mode "\\.jl$"
|
||||
:interpreter "julia"
|
||||
:init
|
||||
(define-repl! julia-mode narf/julia-repl)
|
||||
(evil-set-initial-state 'inferior-julia-mode 'emacs)
|
||||
(push '(julia-mode julia-indent-offset) editorconfig-indentation-alist))
|
||||
:init (def-repl! julia-mode narf/julia-repl))
|
||||
|
||||
(provide 'module-julia)
|
||||
;;; module-julia.el ends here
|
||||
|
|
|
@ -1,18 +1,30 @@
|
|||
;;; module-lisp --- all things lisp
|
||||
|
||||
(add-hook! emacs-lisp-mode
|
||||
'(turn-on-eldoc-mode flycheck-mode highlight-numbers-mode highlight-quoted-mode))
|
||||
|
||||
;; Pop-up REPL
|
||||
(define-repl! emacs-lisp-mode narf/elisp-inf-ielm)
|
||||
|
||||
(use-package highlight-quoted :commands (highlight-quoted-mode))
|
||||
|
||||
;; 'Emacs Lisp' is too long [pedantry intensifies]
|
||||
(defadvice emacs-lisp-mode (after emacs-lisp-mode-rename-modeline activate)
|
||||
(setq mode-name "Elisp"))
|
||||
(associate! emacs-lisp-mode :match "\\(/Cask\\|\\.\\(el\\|gz\\)\\)$")
|
||||
(def-company-backend! emacs-lisp-mode (elisp yasnippet))
|
||||
(def-repl! emacs-lisp-mode narf/elisp-inf-ielm)
|
||||
|
||||
(add-hook! emacs-lisp-mode
|
||||
'(turn-on-eldoc-mode flycheck-mode highlight-numbers-mode))
|
||||
|
||||
;; Real go-to-definition for elisp
|
||||
(map! :map emacs-lisp-mode-map :m "gd" 'narf/elisp-find-function-at-pt)
|
||||
|
||||
(use-package highlight-quoted
|
||||
:commands (highlight-quoted-mode)
|
||||
:init (add-hook 'emacs-lisp-mode-hook 'highlight-quoted-mode))
|
||||
|
||||
(use-package slime :defer t
|
||||
:config (setq inferior-lisp-program "clisp"))
|
||||
|
||||
;; Don't affect lisp indentation (only `tab-width')
|
||||
(setq editorconfig-indentation-alist
|
||||
(delq (assq 'emacs-lisp-mode editorconfig-indentation-alist)
|
||||
editorconfig-indentation-alist))
|
||||
|
||||
(add-hook! emacs-lisp-mode
|
||||
(setq mode-name "Elisp") ; [pedantry intensifies]
|
||||
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace nil t)
|
||||
(add-hook 'after-save-hook 'narf/elisp-auto-compile nil t)
|
||||
|
||||
|
@ -56,16 +68,18 @@
|
|||
'emacs-lisp-mode `(("(\\(lambda\\)"
|
||||
(1 (narf/show-as ?λ)))
|
||||
;; Highlight narf macros (macros are fontified in emacs 25+)
|
||||
(,(concat
|
||||
"(\\(def-"
|
||||
(regexp-opt '("electric" "project-type" "company-backend"
|
||||
"builder" "repl" "textobj" "tmp-excmd"
|
||||
"repeat" "yas-mode" "env-command" "docset"))
|
||||
"!\\)")
|
||||
(1 font-lock-keyword-face append))
|
||||
(,(concat
|
||||
"(\\("
|
||||
(regexp-opt '("λ" "in" "map" "after" "exmap" "shut-up" "add-hook"
|
||||
"associate" "open-with" "define-repl"
|
||||
"define-builder" "narf-space-setup"
|
||||
"define-env-command" "define-text-object"
|
||||
"add-yas-minor-mode" "define-docset"
|
||||
"define-org-link" "define-company-backend"
|
||||
"define-org-section" "define-temp-ex-cmd"
|
||||
"define-project-type"))
|
||||
(regexp-opt '("λ" "in" "map" "after" "shut-up" "add-hook"
|
||||
"associate" "open-with" "define-org-link"
|
||||
"define-org-section"))
|
||||
"!\\)")
|
||||
(1 font-lock-keyword-face append))
|
||||
;; Ert
|
||||
|
@ -77,19 +91,14 @@
|
|||
(2 font-lock-function-name-face))))
|
||||
|
||||
;;
|
||||
(use-package slime :defer t
|
||||
:config (setq inferior-lisp-program "clisp"))
|
||||
|
||||
;; Real go-to-definition for elisp
|
||||
(map! :map emacs-lisp-mode-map :m "gd" 'narf/elisp-find-function-at-pt)
|
||||
|
||||
(define-project-type! emacs-ert "ert"
|
||||
(def-project-type! emacs-ert "ert"
|
||||
:modes (emacs-lisp-mode)
|
||||
:match "/test/.+-test\\.el$"
|
||||
:bind (:localleader
|
||||
:n "tr" 'narf/ert-rerun-test
|
||||
:n "ta" 'narf/ert-run-all-tests
|
||||
:n "ts" 'narf/ert-run-test))
|
||||
:n "ts" 'narf/ert-run-test)
|
||||
(add-hook 'ert-results-mode-hook 'narf|hide-mode-line))
|
||||
|
||||
(provide 'module-lisp)
|
||||
;;; module-elisp.el ends here
|
||||
|
|
|
@ -4,12 +4,11 @@
|
|||
:mode "\\.lua$"
|
||||
:interpreter "lua"
|
||||
:init
|
||||
(define-repl! lua-mode narf/inf-lua)
|
||||
(define-company-backend! lua-mode (yasnippet))
|
||||
(def-company-backend! lua-mode (yasnippet))
|
||||
(def-electric! lua-mode :words ("else" "end"))
|
||||
(def-repl! lua-mode narf/inf-lua)
|
||||
(add-hook 'lua-mode-hook 'flycheck-mode)
|
||||
(add-hook! lua-mode
|
||||
(electric-indent-local-mode +1)
|
||||
(setq narf-electric-indent-words '("else" "end")))
|
||||
|
||||
:config
|
||||
(sp-with-modes '(lua-mode)
|
||||
;; disable defaults
|
||||
|
@ -28,12 +27,12 @@
|
|||
(sp-local-pair "function " " end" :unless '(sp-point-after-bol-p))))
|
||||
|
||||
;;
|
||||
(define-project-type! love "♥"
|
||||
(def-project-type! love "♥"
|
||||
:modes (lua-mode markdown-mode json-mode)
|
||||
:files ("main.lua" "conf.lua")
|
||||
:build ("open -a love.app '%s'" "main.lua"))
|
||||
|
||||
(define-project-type! hammerspoon "hammer"
|
||||
(def-project-type! hammerspoon "hammer"
|
||||
:modes (lua-mode markdown-mode)
|
||||
:match "/\\.?hammerspoon/.+\\.lua$"
|
||||
:build "open hammerspoon://reload")
|
||||
|
|
|
@ -2,26 +2,42 @@
|
|||
|
||||
(use-package hack-mode
|
||||
:mode "\\.hh$"
|
||||
:config (define-company-backend! hack-mode (capf)))
|
||||
:init (def-company-backend! hack-mode (capf)))
|
||||
|
||||
(use-package php-mode
|
||||
:mode ("\\.php[s345]?$" "\\.inc$" )
|
||||
:interpreter "php"
|
||||
:init
|
||||
(define-docset! php-mode "php,laravel")
|
||||
(define-company-backend! php-mode '(php-extras-company))
|
||||
|
||||
(def-repl! php-mode php-boris)
|
||||
(def-docset! php-mode "php,laravel")
|
||||
(def-company-backend! php-mode '(company-ac-php-backend php-extras-company))
|
||||
(add-hook 'php-mode-hook 'flycheck-mode)
|
||||
(setq php-template-compatibility nil
|
||||
php-extras-eldoc-functions-file (concat narf-temp-dir "/php-extras-eldoc-functions"))
|
||||
:config
|
||||
(require 'php-extras)
|
||||
(defun php-extras-company-setup ()) ;; company will set up itself
|
||||
|
||||
:config
|
||||
(map! :map php-mode-map (:localleader :nv ";" 'narf/append-semicolon))
|
||||
|
||||
(sp-with-modes '(php-mode)
|
||||
(sp-local-pair "/*" "*/" :post-handlers '(("||\n[i]" "RET") ("| " "SPC")))
|
||||
(sp-local-pair "/**" "*/" :post-handlers '(("||\n[i]" "RET") ("||\n[i]" "SPC")))
|
||||
(sp-local-pair "<? " " ?>")
|
||||
(sp-local-pair "<?php " " ?>")
|
||||
(sp-local-pair "<?=" " ?>")
|
||||
(sp-local-pair "<?" "?>" :when '(("RET")) :post-handlers '("||\n[i]"))
|
||||
(sp-local-pair "<?php" "?>" :when '(("RET")) :post-handlers '("||\n[i]"))))
|
||||
|
||||
(use-package ac-php-company
|
||||
:after php-mode
|
||||
:config
|
||||
(map! :map php-mode-map
|
||||
(:localleader :nv ";" 'narf/append-semicolon)
|
||||
:n "gd" 'ac-php-find-symbol-at-point
|
||||
:n "gD" 'ac-php-location-stack-back)
|
||||
:n "gD" 'ac-php-location-stack-back))
|
||||
|
||||
(use-package php-extras
|
||||
:after php-mode
|
||||
:config
|
||||
(defun php-extras-company-setup ()) ;; company will set up itself
|
||||
|
||||
;; Generate php-extras documentation and completion asynchronously
|
||||
(unless (file-exists-p (concat php-extras-eldoc-functions-file ".el"))
|
||||
|
@ -31,43 +47,32 @@
|
|||
(php-extras-generate-eldoc-1 t))
|
||||
(lambda (_)
|
||||
(load (concat php-extras-eldoc-functions-file ".el"))
|
||||
(message "PHP eldoc updated!"))))
|
||||
(message "PHP eldoc updated!")))))
|
||||
|
||||
(sp-with-modes '(php-mode)
|
||||
(sp-local-pair "/*" "*/" :post-handlers '(("||\n[i]" "RET") ("| " "SPC")))
|
||||
(sp-local-pair "/**" "*/" :post-handlers '(("||\n[i]" "RET") ("||\n[i]" "SPC")))
|
||||
(sp-local-pair "<? " " ?>")
|
||||
(sp-local-pair "<?php " " ?>")
|
||||
(sp-local-pair "<?=" " ?>")
|
||||
(sp-local-pair "<?" "?>" :when '(("RET")) :post-handlers '("||\n[i]"))
|
||||
(sp-local-pair "<?php" "?>" :when '(("RET")) :post-handlers '("||\n[i]")))
|
||||
(use-package php-refactor-mode
|
||||
:after php-mode
|
||||
:init (add-hook! php-mode '(turn-on-eldoc-mode emr-initialize php-refactor-mode))
|
||||
:config
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
(title (cadr x))
|
||||
(region-p (caddr x))
|
||||
predicate)
|
||||
(setq predicate (cond ((eq region-p 'both) nil)
|
||||
(t (if region-p
|
||||
(lambda () (use-region-p))
|
||||
(lambda () (not (use-region-p)))))))
|
||||
(emr-declare-command (intern (format "php-refactor--%s" (symbol-name command-name)))
|
||||
:title title :modes 'php-mode :predicate predicate)))
|
||||
'((convert-local-to-instance-variable "convert local var to instance var" nil)
|
||||
(optimize-use "optimize FQNs in file" nil)
|
||||
(extract-method "extract method" t)
|
||||
(rename-local-variable "rename local variable" nil))))
|
||||
|
||||
(use-package php-refactor-mode
|
||||
:init (add-hook! php-mode '(turn-on-eldoc-mode emr-initialize php-refactor-mode))
|
||||
:config
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
(title (cadr x))
|
||||
(region-p (caddr x))
|
||||
predicate)
|
||||
(setq predicate (cond ((eq region-p 'both) nil)
|
||||
(t (if region-p
|
||||
(lambda () (use-region-p))
|
||||
(lambda () (not (use-region-p)))))))
|
||||
(emr-declare-command (intern (format "php-refactor--%s" (symbol-name command-name)))
|
||||
:title title :modes 'php-mode :predicate predicate)))
|
||||
'((convert-local-to-instance-variable "convert local var to instance var" nil)
|
||||
(optimize-use "optimize FQNs in file" nil)
|
||||
(extract-method "extract method" t)
|
||||
(rename-local-variable "rename local variable" nil)))))
|
||||
|
||||
;; PHP Repl
|
||||
(use-package php-boris :defer t
|
||||
:init (define-repl! php-mode php-boris)
|
||||
:config (evil-set-initial-state 'php-boris-mode 'emacs))
|
||||
(use-package php-boris :commands php-boris) ; PHP REPL
|
||||
|
||||
;;
|
||||
(define-project-type! laravel "laravel"
|
||||
(def-project-type! laravel "laravel"
|
||||
:modes (php-mode yaml-mode web-mode nxml-mode js2-mode scss-mode)
|
||||
:files ("artisan" "server.php"))
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
:commands (processing-mode processing-find-sketch)
|
||||
:mode "\\.pde$"
|
||||
:init
|
||||
(define-builder! processing-mode processing-sketch-build)
|
||||
(def-builder! processing-mode processing-sketch-build)
|
||||
(add-hook 'processing-compilation-mode-hook 'narf|hide-mode-line)
|
||||
|
||||
:config
|
||||
|
@ -14,14 +14,6 @@
|
|||
processing-sketchbook-dir "~/Dropbox/work/pde"
|
||||
processing-output-dir "/tmp")
|
||||
|
||||
(after! quickrun
|
||||
(quickrun-add-command
|
||||
"processing" `((:command . ,processing-location)
|
||||
(:exec . (lambda () (format "--sketch=%s --output=%s --force --run"
|
||||
(narf/project-root) processing-output-dir)))
|
||||
(:description . "Run Processing sketch"))
|
||||
:mode 'processing-mode))
|
||||
|
||||
(map! :map processing-mode-map
|
||||
:nv "M-r" 'processing-sketch-run
|
||||
:m "gd" 'processing-find-in-reference
|
||||
|
@ -32,6 +24,14 @@
|
|||
"e" 'processing-open-examples
|
||||
"o" 'processing-open-sketchbook))
|
||||
|
||||
(after! quickrun
|
||||
(quickrun-add-command
|
||||
"processing" `((:command . ,processing-location)
|
||||
(:exec . (lambda () (format "--sketch=%s --output=%s --force --run"
|
||||
(narf/project-root) processing-output-dir)))
|
||||
(:description . "Run Processing sketch"))
|
||||
:mode 'processing-mode))
|
||||
|
||||
(add-hook! processing-mode
|
||||
(setq-local company-backends '((company-keywords
|
||||
:with
|
||||
|
|
|
@ -17,55 +17,59 @@
|
|||
python-shell-completion-string-code
|
||||
"';'.join(get_ipython().Completer.all_completions('''%s'''))\n")
|
||||
|
||||
(define-docset! python-mode "py,py3,python")
|
||||
(define-env-command! python-mode "python --version 2>&1 | cut -d' ' -f2")
|
||||
(define-repl! python-mode narf/inf-python)
|
||||
(add-hook! python-mode '(emr-initialize narf|flycheck-enable-maybe))
|
||||
(def-company-backend! python-mode (anaconda))
|
||||
(def-docset! python-mode "py,py3,python")
|
||||
(def-env-command! python-mode "python --version 2>&1 | cut -d' ' -f2")
|
||||
(def-repl! python-mode narf/inf-python)
|
||||
(add-hook 'python-mode-hook 'flycheck-mode)
|
||||
|
||||
:config
|
||||
(define-key python-mode-map (kbd "DEL") nil) ; interferes with smartparens
|
||||
(define-key python-mode-map (kbd "DEL") nil)) ; interferes with smartparens
|
||||
|
||||
(use-package anaconda-mode
|
||||
:init
|
||||
(add-hook! python-mode '(anaconda-mode anaconda-eldoc-mode eldoc-mode))
|
||||
(setq anaconda-mode-installation-directory (concat narf-temp-dir "/anaconda/")
|
||||
anaconda-mode-eldoc-as-single-line t)
|
||||
(use-package anaconda-mode
|
||||
:after python
|
||||
:init
|
||||
(add-hook! python-mode '(anaconda-mode anaconda-eldoc-mode eldoc-mode))
|
||||
(setq anaconda-mode-installation-directory (concat narf-temp-dir "/anaconda/")
|
||||
anaconda-mode-eldoc-as-single-line t)
|
||||
|
||||
:config
|
||||
(map! :map anaconda-mode-map :m "gd" 'anaconda-mode-find-definitions)
|
||||
(map! :map anaconda-nav-mode-map :n [escape] 'anaconda-nav-quit)
|
||||
:config
|
||||
(map! :map anaconda-mode-map :m "gd" 'anaconda-mode-find-definitions)
|
||||
(map! :map anaconda-nav-mode-map :n [escape] 'anaconda-nav-quit)
|
||||
|
||||
(advice-add 'anaconda-mode-doc-buffer :after 'narf*anaconda-mode-doc-buffer)
|
||||
(advice-add 'anaconda-mode-doc-buffer :after 'narf*anaconda-mode-doc-buffer))
|
||||
|
||||
(require 'company-anaconda)
|
||||
(define-company-backend! python-mode (anaconda))
|
||||
(after! emr
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
(title (cadr x))
|
||||
(region-p (caddr x))
|
||||
predicate)
|
||||
(setq predicate (lambda () (and (anaconda-mode-running-p)
|
||||
(not (use-region-p))
|
||||
(not (sp-point-in-string-or-comment)))))
|
||||
(emr-declare-command (intern (format "anaconda-mode-%s" (symbol-name command-name)))
|
||||
:title title :modes 'python-mode :predicate predicate)))
|
||||
'((show-doc "view documentation" t)
|
||||
(find-assignments "find assignments" t)
|
||||
(find-definitions "find definitions" t)
|
||||
(find-file "find assignments" t)
|
||||
(find-references "show usages" nil))))))
|
||||
(use-package company-anaconda
|
||||
:after anaconda-mode
|
||||
:init (add-hook 'anaconda-mode-hook 'emr-initialize)
|
||||
:config
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
(title (cadr x))
|
||||
(region-p (caddr x))
|
||||
predicate)
|
||||
(setq predicate (lambda () (and (anaconda-mode-running-p)
|
||||
(not (use-region-p))
|
||||
(not (sp-point-in-string-or-comment)))))
|
||||
(emr-declare-command (intern (format "anaconda-mode-%s" (symbol-name command-name)))
|
||||
:title title :modes 'python-mode :predicate predicate)))
|
||||
'((show-doc "view documentation" t)
|
||||
(find-assignments "find assignments" t)
|
||||
(find-definitions "find definitions" t)
|
||||
(find-file "find assignments" t)
|
||||
(find-references "show usages" nil))))
|
||||
|
||||
(use-package pip-requirements
|
||||
:mode ("/requirements.txt$" . pip-requirements-mode)
|
||||
:config (define-company-backend! pip-requirements-mode (capf)))
|
||||
:config (def-company-backend! pip-requirements-mode (capf)))
|
||||
|
||||
(use-package nose
|
||||
:commands nose-mode
|
||||
:preface (defvar nose-mode-map (make-sparse-keymap))
|
||||
:init (associate! nose-mode :match "/test_.+\\.py$" :in (python-mode))
|
||||
:init
|
||||
(associate! nose-mode :match "/test_.+\\.py$" :in (python-mode))
|
||||
(def-yas-mode! 'nose-mode)
|
||||
:config
|
||||
(add-yas-minor-mode! 'nose-mode)
|
||||
(map! :map nose-mode-map
|
||||
(:localleader
|
||||
:n "tr" 'nosetests-again
|
||||
|
|
|
@ -5,57 +5,45 @@
|
|||
"/\\(Gem\\|Cap\\|Vagrant\\|Rake\\)file$")
|
||||
:interpreter "ruby"
|
||||
:init
|
||||
(add-hook 'ruby-mode-hook 'flycheck-mode)
|
||||
(define-docset! ruby-mode "rb,ruby,rubygem")
|
||||
(define-builder! ruby-mode "rake %s" "Rakefile")
|
||||
(define-env-command! ruby-mode "ruby --version | cut -d' ' -f2")
|
||||
(define-company-backend! ruby-mode (dabbrev-code))
|
||||
(def-builder! ruby-mode "rake %s" "Rakefile")
|
||||
(def-company-backend! ruby-mode (dabbrev-code))
|
||||
(def-docset! ruby-mode "rb,ruby,rubygem")
|
||||
(def-env-command! ruby-mode "ruby --version | cut -d' ' -f2")
|
||||
(def-repl! ruby-mode inf-ruby)
|
||||
(def-electric! ruby-mode :words ("else" "end" "elseif"))
|
||||
(add-hook! 'ruby-mode-hook '(flycheck-mode yard-mode))
|
||||
|
||||
:config
|
||||
(setq ruby-deep-indent-paren t) ; Formatting
|
||||
(add-hook! ruby-mode
|
||||
(electric-indent-local-mode +1)
|
||||
(setq narf-electric-indent-words '("else" "end" "elseif")))
|
||||
|
||||
;; Don't interfere with my custom RET behavior
|
||||
(define-key ruby-mode-map [?\n] nil)
|
||||
(define-key ruby-mode-map [?\n] nil))
|
||||
|
||||
;; Highlight doc comments
|
||||
(use-package yard-mode :init (add-hook 'ruby-mode-hook 'yard-mode))
|
||||
(use-package ruby-refactor
|
||||
:after ruby-mode
|
||||
:init (add-hook 'ruby-mode-hook 'emr-initialize)
|
||||
:config
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
(title (cadr x))
|
||||
(region-p (caddr x))
|
||||
predicate)
|
||||
(setq predicate (cond ((eq region-p 'both) nil)
|
||||
(t (if region-p
|
||||
(lambda () (use-region-p))
|
||||
(lambda () (not (use-region-p)))))))
|
||||
(emr-declare-command (intern (format "ruby-%s" (symbol-name command-name)))
|
||||
:title title :modes 'ruby-mode :predicate predicate)))
|
||||
'((toggle-block "toggle block" nil)
|
||||
(refactor-extract-to-method "extract method" t)
|
||||
(refactor-extract-local-variable "extract local variable" t)
|
||||
(refactor-extract-constant "extract constant" t)
|
||||
(refactor-add-parameter "add parameter" nil)
|
||||
(refactor-extract-to-let "extract to let" t)
|
||||
(refactor-convert-post-conditional "convert post conditional" t))))
|
||||
|
||||
;; FIXME: Doesn't work
|
||||
;; (use-package robe
|
||||
;; :commands (robe-mode robe-start ruby-load-file company-robe)
|
||||
;; :init
|
||||
;; (add-hook! ruby-mode
|
||||
;; (narf|ruby-load-file)
|
||||
;; (add-hook 'after-save-hook 'narf|ruby-load-file nil t))
|
||||
;; (define-company-backend! ruby-mode (robe))
|
||||
;; :config
|
||||
;; (require 'company-robe))
|
||||
|
||||
(use-package ruby-refactor
|
||||
:init (add-hook 'ruby-mode-hook 'emr-initialize)
|
||||
:config
|
||||
(require 'emr)
|
||||
(mapc (lambda (x)
|
||||
(let ((command-name (car x))
|
||||
(title (cadr x))
|
||||
(region-p (caddr x))
|
||||
predicate)
|
||||
(setq predicate (cond ((eq region-p 'both) nil)
|
||||
(t (if region-p
|
||||
(lambda () (use-region-p))
|
||||
(lambda () (not (use-region-p)))))))
|
||||
(emr-declare-command (intern (format "ruby-%s" (symbol-name command-name)))
|
||||
:title title :modes 'ruby-mode :predicate predicate)))
|
||||
'((toggle-block "toggle block" nil)
|
||||
(refactor-extract-to-method "extract method" t)
|
||||
(refactor-extract-local-variable "extract local variable" t)
|
||||
(refactor-extract-constant "extract constant" t)
|
||||
(refactor-add-parameter "add parameter" nil)
|
||||
(refactor-extract-to-let "extract to let" t)
|
||||
(refactor-convert-post-conditional "convert post conditional" t)))))
|
||||
;; Highlight doc comments
|
||||
(use-package yard-mode :commands yard-mode)
|
||||
|
||||
(use-package rspec-mode
|
||||
:mode ("/\\.rspec$" . text-mode)
|
||||
|
@ -80,19 +68,13 @@
|
|||
|
||||
(use-package inf-ruby
|
||||
:commands (inf-ruby inf-ruby-console-auto)
|
||||
:init
|
||||
(define-repl! ruby-mode inf-ruby)
|
||||
(evil-set-initial-state 'inf-ruby-mode 'emacs)
|
||||
:config
|
||||
(require 'company-inf-ruby)
|
||||
(define-company-backend! inf-ruby-mode (inf-ruby)))
|
||||
:init (def-company-backend! inf-ruby-mode (inf-ruby)))
|
||||
|
||||
(use-package company-inf-ruby :after inf-ruby)
|
||||
|
||||
;;
|
||||
(define-project-type! rake "rake"
|
||||
(def-project-type! rake "rake"
|
||||
:files ("Rakefile"))
|
||||
|
||||
(define-project-type! vagrant "vagrant"
|
||||
:files ("Vagrantfile"))
|
||||
|
||||
(provide 'module-ruby)
|
||||
;;; module-ruby.el ends here
|
||||
|
|
|
@ -2,25 +2,25 @@
|
|||
|
||||
(use-package rust-mode
|
||||
:mode "\\.rs$"
|
||||
:init
|
||||
(def-builder! rust-mode "cargo run" "Cargo.toml")
|
||||
(def-builder! toml-mode "cargo run" "Cargo.toml")
|
||||
(add-hook 'rust-mode-hook 'flycheck-mode))
|
||||
|
||||
(use-package flycheck-rust :after rust-mode)
|
||||
|
||||
(use-package racer
|
||||
:after rust-mode
|
||||
:preface
|
||||
(setq racer-cmd (concat narf-ext-dir "/racer")
|
||||
racer-rust-src-path (concat narf-ext-dir "/rust/src/"))
|
||||
:when (file-exists-p racer-cmd)
|
||||
:init
|
||||
(add-hook! rust-mode '(racer-mode eldoc-mode flycheck-rust-setup))
|
||||
:config
|
||||
(define-builder! rust-mode "cargo run" "Cargo.toml")
|
||||
(define-builder! toml-mode "cargo run" "Cargo.toml")
|
||||
|
||||
(require 'flycheck-rust)
|
||||
(add-hook 'rust-mode-hook 'flycheck-mode)
|
||||
|
||||
(use-package racer
|
||||
:preface
|
||||
(setq racer-cmd (concat narf-ext-dir "/racer")
|
||||
racer-rust-src-path (concat narf-ext-dir "/rust/src/"))
|
||||
:when (file-exists-p racer-cmd)
|
||||
:config
|
||||
(define-company-backend! rust-mode (racer))
|
||||
(map! :map rust-mode-map :m "gd" 'racer-find-definition)
|
||||
|
||||
;; TODO Unit test keybinds
|
||||
|
||||
(add-hook! rust-mode '(racer-mode eldoc-mode flycheck-rust-setup))))
|
||||
;; TODO Unit test keybinds
|
||||
(def-company-backend! rust-mode (racer))
|
||||
(map! :map rust-mode-map :m "gd" 'racer-find-definition))
|
||||
|
||||
(provide 'module-rust)
|
||||
;;; module-rust.el ends here
|
||||
|
|
|
@ -3,20 +3,17 @@
|
|||
(associate! sh-mode :match "\\.\\(ba\\|z\\)sh$")
|
||||
(associate! sh-mode :match "/\\.?z\\(sh\\(/.*\\|$\\)\\|profile\\|login\\|logout\\|shrc\\|shenv\\)$")
|
||||
(associate! sh-mode :match "/\\.?bash\\(/.*\\|rc\\|_profile\\)$")
|
||||
(after! sh-script
|
||||
(define-repl! sh-mode narf/inf-shell)
|
||||
(def-electric! sh-mode :words ("else" "elif" "fi" "done"))
|
||||
|
||||
(after! sh-script
|
||||
(def-repl! sh-mode narf/inf-shell)
|
||||
(setq sh-indent-after-continuation 'always)
|
||||
|
||||
(add-hook 'sh-mode-hook 'flycheck-mode)
|
||||
(add-hook 'sh-mode-hook 'narf|sh-extra-font-lock-activate) ; Fontify variables in strings
|
||||
(add-hook! sh-mode (setq mode-name "sh")) ; [pedantry intensifies]
|
||||
(add-hook! sh-mode
|
||||
(electric-indent-local-mode +1)
|
||||
(setq narf-electric-indent-words '("else" "elif" "fi" "done")))
|
||||
|
||||
(require 'company-shell)
|
||||
(setq company-shell-delete-duplicates t)
|
||||
'(flycheck-mode
|
||||
;; Fontify variables in strings
|
||||
narf|sh-extra-font-lock-activate))
|
||||
|
||||
(sp-with-modes '(sh-mode)
|
||||
(sp-local-pair "case" "" :when '(("SPC")) :post-handlers '((:add narf/sp-insert-yasnippet)) :actions '(insert))
|
||||
|
@ -25,5 +22,9 @@
|
|||
(sp-local-pair "elif" "" :when '(("SPC")) :post-handlers '((:add narf/sp-insert-yasnippet)) :actions '(insert))
|
||||
(sp-local-pair "while" "" :when '(("SPC")) :post-handlers '((:add narf/sp-insert-yasnippet)) :actions '(insert))))
|
||||
|
||||
(use-package company-shell
|
||||
:after sh-script
|
||||
:config (setq company-shell-delete-duplicates t))
|
||||
|
||||
(provide 'module-sh)
|
||||
;;; module-sh.el ends here
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
(use-package markdown-mode
|
||||
:mode ("\\.md$" "/README$")
|
||||
:init
|
||||
(add-hook 'markdown-mode-hook 'turn-on-auto-fill)
|
||||
:init (add-hook 'markdown-mode-hook 'turn-on-auto-fill)
|
||||
:config
|
||||
(map! :map markdown-mode-map
|
||||
"<backspace>" nil
|
||||
|
@ -28,9 +27,45 @@
|
|||
:n "[p" 'markdown-promote
|
||||
:n "]p" 'markdown-demote
|
||||
|
||||
:i "M--" 'markdown-insert-hr)
|
||||
:i "M--" 'markdown-insert-hr))
|
||||
|
||||
(use-package markdown-toc :commands (markdown-toc-generate-toc)))
|
||||
(use-package markdown-toc :after markdown-mode)
|
||||
|
||||
(use-package reftex
|
||||
:config
|
||||
(add-hook 'latex-mode-hook 'turn-on-reftex)
|
||||
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
|
||||
(setq reftex-plug-into-AUCTeX t
|
||||
reftex-ref-style-default-list '("Cleveref" "Hyperref" "Fancyref")
|
||||
reftex-default-bibliography
|
||||
`(,(expand-file-name "phys.bib" write-mode-biblio-dir))))
|
||||
|
||||
(use-package helm-bibtex
|
||||
:defer t
|
||||
:init
|
||||
(setq TeX-auto-save t)
|
||||
(setq TeX-parse-self t)
|
||||
(setq bibtex-dialect 'biblatex)
|
||||
(setq bibtex-align-at-equal-sign t)
|
||||
(setq bibtex-text-indentation 20)
|
||||
(add-hook! bibtex-mode
|
||||
(local-set-key (kbd "C-c \\") 'bibtex-fill-entry)
|
||||
(setq fill-column 140))
|
||||
(add-hook! latex-mode 'turn-on-auto-fill)
|
||||
(add-hook! LaTeX-mode 'turn-on-auto-fill)
|
||||
|
||||
:config
|
||||
(setq helm-bibtex-bibliography
|
||||
`(,(expand-file-name "phys.bib" write-mode-biblio-dir))
|
||||
|
||||
helm-bibtex-library-path
|
||||
`(,(expand-file-name "phys-pdf" write-mode-biblio-dir))
|
||||
|
||||
helm-bibtex-notes-path (expand-file-name "notes" write-mode-biblio-dir)
|
||||
helm-bibtex-notes-extension ".org"
|
||||
|
||||
helm-bibtex-pdf-open-function
|
||||
(lambda (fpath) (async-start-process "open-pdf" "/usr/bin/open" nil fpath))))
|
||||
|
||||
(provide 'module-text)
|
||||
;;; module-text.el ends here
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
;;; module-web.el
|
||||
|
||||
(define-company-backend! sass-mode (css))
|
||||
(define-company-backend! scss-mode (css))
|
||||
(define-docset! scss-mode "sass,bourbon")
|
||||
(def-company-backend! sass-mode (css))
|
||||
(def-company-backend! scss-mode (css))
|
||||
(def-docset! scss-mode "sass,bourbon")
|
||||
(add-hook! (sass-mode scss-mode less-css-mode)
|
||||
'(flycheck-mode narf|hl-line-off hs-minor-mode))
|
||||
|
||||
|
@ -34,9 +34,6 @@
|
|||
:n ";" 'helm-css-scss
|
||||
:n ":" 'helm-css-scss-multi))
|
||||
|
||||
(after! web-beautify
|
||||
(map! :map scss-mode-map :m "gQ" 'web-beautify-css))
|
||||
|
||||
(after! emr
|
||||
(emr-declare-command 'narf/scss-toggle-inline-or-block
|
||||
:title "toggle inline/block"
|
||||
|
@ -44,21 +41,29 @@
|
|||
:predicate (lambda () (not (use-region-p))))))
|
||||
|
||||
(use-package jaded-mode
|
||||
:load-path "/Volumes/hlissner/Dropbox/work/plugins/jaded-mode"
|
||||
:mode "\\.jade$"
|
||||
:config
|
||||
(push '("jade" "html") projectile-other-file-alist)
|
||||
(map! :map jaded-mode-map
|
||||
:i [tab] 'narf/dumb-indent
|
||||
:i [backtab] 'narf/dumb-dedent))
|
||||
|
||||
(use-package web-mode
|
||||
:mode ("\\.\\(p\\)?htm\\(l\\)?$"
|
||||
:mode ("\\.p?html?$"
|
||||
"\\.\\(tpl\\|blade\\)\\(\\.php\\)?$"
|
||||
"\\.erb$"
|
||||
"\\.as[cp]x$"
|
||||
"\\.mustache$"
|
||||
"wp-content/themes/.+/.+\\.php$")
|
||||
:init
|
||||
(add-hook 'web-mode-hook 'turn-off-smartparens-mode)
|
||||
|
||||
:config
|
||||
(setq web-mode-enable-html-entities-fontification t
|
||||
web-mode-enable-current-column-highlight t)
|
||||
(push '("html" "jade") projectile-other-file-alist)
|
||||
|
||||
(map! :map web-mode-map :i "SPC" 'self-insert-command)
|
||||
|
||||
(after! nlinum
|
||||
|
@ -67,12 +72,11 @@
|
|||
|
||||
(map! :map web-mode-map
|
||||
"M-/" 'web-mode-comment-or-uncomment
|
||||
:n "M-r" 'narf/web-refresh-browser
|
||||
|
||||
:n "za" 'web-mode-fold-or-unfold
|
||||
(:localleader :n "t" 'web-mode-element-rename)
|
||||
|
||||
:n "M-r" 'narf/web-refresh-browser
|
||||
|
||||
:nv "]a" 'web-mode-attribute-next
|
||||
:nv "[a" 'web-mode-attribute-previous
|
||||
:nv "]t" 'web-mode-tag-next
|
||||
|
@ -81,15 +85,6 @@
|
|||
:nv "[T" 'web-mode-element-parent))
|
||||
|
||||
;;
|
||||
(use-package web-beautify
|
||||
:commands (web-beautify-js web-beautify-css web-beautify-html)
|
||||
:init
|
||||
(add-hook! (web-mode css-mode scss-mode sass-mode less-css-mode js2-mode)
|
||||
(setenv "jsbeautify_indent_size" (int-to-string tab-width)))
|
||||
(map! (:after web-mode :map web-mode-map :m "gQ" 'web-beautify-html)
|
||||
(:after css-mode :map css-mode-map :m "gQ" 'web-beautify-css)
|
||||
(:after js2-mode :map js2-mode-map :m "gQ" 'web-beautify-js)))
|
||||
|
||||
(use-package emmet-mode
|
||||
:commands (emmet-mode)
|
||||
:init
|
||||
|
@ -103,7 +98,7 @@
|
|||
:i "M-E" 'emmet-expand-line))
|
||||
|
||||
;;
|
||||
(define-project-type! jekyll ":{"
|
||||
(def-project-type! jekyll ":{"
|
||||
:modes (web-mode scss-mode html-mode markdown-mode yaml-mode)
|
||||
:match "/\\(\\(css\\|_\\(layouts\\|posts\\|sass\\)\\)/.+\\|.+.html\\)$"
|
||||
:files ("config.yml" "_layouts/")
|
||||
|
@ -111,7 +106,7 @@
|
|||
(when (eq major-mode 'web-mode)
|
||||
(web-mode-set-engine "django"))))
|
||||
|
||||
(define-project-type! wordpress "wp"
|
||||
(def-project-type! wordpress "wp"
|
||||
:modes (php-mode web-mode css-mode scss-mode sass-mode)
|
||||
:match "/wp-\\(\\(content\\|admin\\|includes\\)/\\)?.+$"
|
||||
:files ("wp-config.php" "wp-content/"))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue