Ver Fonte

Fix indent and comments. Add whitespace ignorer.

Josh Bicking há 7 anos atrás
pai
commit
10efe86d33
2 ficheiros alterados com 146 adições e 126 exclusões
  1. 1 1
      emacs.d/init.el
  2. 145 125
      emacs.d/packages/packages.el

+ 1 - 1
emacs.d/init.el

@@ -127,7 +127,7 @@ scroll-step 1)
 	(switch-to-buffer "*cmd*")))
 
 (defun linux-setup ()
-  (setq tage-generator "ctags")
+  (setq tage-generator "ctags"))
 
 (cond ((eq system-type 'windows-nt) (win-setup))
       ((eq system-type 'gnu/linux) (linux-setup))

+ 145 - 125
emacs.d/packages/packages.el

@@ -1,11 +1,11 @@
 ;;; use-package example:
-; (use-package foo
-; :init ; Runs before loading the package. WIll always run, even if foo isn't on this system.
-; :config ; Runs after.
-; :bind (("M-s O" . action)
-;       ("" . some-other-action))
-; :commands foo-mode ; Creates autoloads for commands: defers loading until called.
-; )
+;; (use-package foo
+;; :init ; Runs before loading the package. WIll always run, even if foo isn't on this system.
+;; :config ; Runs after.
+;; :bind (("M-s O" . action)
+;;       ("" . some-other-action))
+;; :commands foo-mode ; Creates autoloads for commands: defers loading until called.
+;; )
 
 ;; Package installation
 
@@ -35,68 +35,68 @@
 (defun ensure-package-installed (prompt &rest packages)
   (mapcar
    (lambda (package)
-	 (if (package-installed-p package)
-	     nil
-	   (if (or prompt (y-or-n-p (format "Package %s is missing. Install it? " package)))
-	       ;; If this is the 1st install this session, update before install
-	       (cond ((eq packages-installed-this-session 0)
-		      (package-refresh-contents)
-		      (setq packages-installed-this-session 1)
-		      (package-install package))
-		     (t (package-install package))
-		 nil)
-	     package)))
+     (if (package-installed-p package)
+         nil
+       (if (or prompt (y-or-n-p (format "Package %s is missing. Install it? " package)))
+           ;; If this is the 1st install this session, update before install
+           (cond ((eq packages-installed-this-session 0)
+                  (package-refresh-contents)
+                  (setq packages-installed-this-session 1)
+                  (package-install package))
+                 (t (package-install package))
+                 nil)
+         package)))
    packages))
 
 ;; List of packages to install on all systems
 (setq required-packages
       '(
-	use-package
-	bind-key
-	iedit
-	magit
-	evil-magit
-	magithub
-	undo-tree
-	evil
-	evil-leader
-	powerline-evil
-	monokai-theme
-	challenger-deep-theme
-	linum-relative
-	multi-term
-	neotree
-	evil-numbers
-	editorconfig
-	company
-	ivy
-	flx
-	flycheck
-	flycheck-pos-tip
-	evil-surround
-	diminish
-	dtrt-indent
-	undohist
-	evil-ediff
+        use-package
+        bind-key
+        iedit
+        magit
+        evil-magit
+        magithub
+        undo-tree
+        evil
+        evil-leader
+        powerline-evil
+        monokai-theme
+        challenger-deep-theme
+        linum-relative
+        multi-term
+        neotree
+        evil-numbers
+        editorconfig
+        company
+        ivy
+        flx
+        flycheck
+        flycheck-pos-tip
+        evil-surround
+        diminish
+        dtrt-indent
+        undohist
+        evil-ediff
         rainbow-delimiters
         rainbow-identifiers
         rainbow-mode
-	))
+        ))
 
 ;; List of optional packages
 (setq optional-packages
       '(
-	flymd
-	markdown-mode
-	latex-preview-pane
-	tide
-	web-mode
-	racket-mode
-	fuzzy
-	general
-	haskell-mode
-	emojify
-	))
+        flymd
+        markdown-mode
+        latex-preview-pane
+        tide
+        web-mode
+        racket-mode
+        fuzzy
+        general
+        haskell-mode
+        emojify
+        ))
 
 
 ;; Check that all packages are installed
@@ -104,7 +104,7 @@
 
 ;; Declare function for optional packages
 (defun optional-packages-install ()
-    (interactive)
+  (interactive)
   (apply 'ensure-package-installed nil optional-packages))
 
 
@@ -112,7 +112,7 @@
 (diminish 'visual-line-mode)
 (diminish 'abbrev-mode)
 
-;;; Flyspell 
+;;; Flyspell
 
 ;; map ]s and [s to next and previously wrong word
 
@@ -159,7 +159,7 @@
 
 ;; Add folds to programming modes
 (add-hook 'prog-mode-hook
-            'hs-minor-mode)
+          'hs-minor-mode)
 (add-hook 'hs-minor-mode-hook
           (lambda ()
             (diminish 'hs-minor-mode)))
@@ -168,10 +168,10 @@
   :diminish auto-revert-mode)
 
 (use-package recentf
-  :config 
+  :config
   (recentf-mode 1)
   (setq recentf-max-saved-items 200
-    recentf-max-menu-items 15))
+        recentf-max-menu-items 15))
 
 
 (use-package evil
@@ -194,14 +194,34 @@
   (define-key evil-window-map (kbd "q") 'delete-window)
   (define-key evil-window-map (kbd "C-q") 'delete-window)
 
-  ; Add window recovery to C-w
+  ;; Add window recovery to C-w
   (define-key evil-window-map (kbd "u") 'winner-undo)
   (define-key evil-window-map (kbd "U") 'winner-redo)
 
-  ; Don't echo evil's states
+  ;; Don't echo evil's states
   (setq evil-insert-state-message nil)
   (setq evil-visual-state-message nil)
 
+  ;; Little words (camelCase)
+  (evil-define-motion evil-little-word (count)
+    :type exclusive
+    (let* ((case-fold-search nil)
+           (count (if count count 1)))
+      (while (> count 0)
+        (forward-char)
+        (search-forward-regexp "[_A-Z]\\|\\W" nil t)
+        (backward-char)
+        (decf count))))
+
+  ;; Don't litter registers with whitespace
+  (defun destroy-whitespace--evil-delete-around (func beg end type &optional reg yh)
+    (let ((clean-string (replace-regexp-in-string "[ \t\n]" "" (buffer-substring beg end))))
+      (if (equal "" clean-string)
+          (apply func beg end type ?_ yh)
+        (apply func beg end type reg yh))))
+
+  (advice-add 'evil-delete :around #'destroy-whitespace--evil-delete-around)
+
   ;; eval the last sexp while in normal mode (include the character the cursor is currently on)
   (defun evil-eval-last-sexp ()
     (interactive)
@@ -218,31 +238,32 @@
     (interactive "@")
     (set-window-hscroll (selected-window) (- (current-column) (window-width) -1)))
 
-   ;; Horizontal scrolling
-   (setq auto-hscroll-mode 't)
-   (setq hscroll-margin 0
-         hscroll-step 1)
+  ;; Horizontal scrolling
+  (setq auto-hscroll-mode 't)
+  (setq hscroll-margin 0
+        hscroll-step 1)
 
   :bind (:map evil-normal-state-map
-         ("zs" . hscroll-cursor-left)
-         ("ze" . hscroll-cursor-right)
-         ("[s" . flyspell-goto-previous-error)
-         ("]s" . flyspell-goto-next-error)
-         ("\C-x \C-e" . evil-eval-last-sexp)
+              ("zs" . hscroll-cursor-left)
+              ("ze" . hscroll-cursor-right)
+              ("[s" . flyspell-goto-previous-error)
+              ("]s" . flyspell-goto-next-error)
+              ("\C-x \C-e" . evil-eval-last-sexp)
          :map Info-mode-map
-         ("g" . nil)
-         ("n" . nil)
-         ("p" . nil)
+              ("g" . nil)
+              ("n" . nil)
+              ("p" . nil)
          :map evil-window-map
-         ("q" . delete-window)
-         ("C-q" . delete-window)))
-
+              ("q" . delete-window)
+              ("C-q" . delete-window)
+         :map evil-operator-state-map
+              ("lw" . evil-little-word)))
 
 
 (use-package evil-numbers
   ;; Increment and decrement (evil-numbers)
   :bind (("C-c C-a" . evil-numbers/inc-at-pt)
-	 ("C-c C-d" . evil-numbers/dec-at-pt)))
+         ("C-c C-d" . evil-numbers/dec-at-pt)))
 
 
 (use-package undo-tree
@@ -283,14 +304,14 @@
   (linum-mode)
   (linum-relative-global-mode)
   (defun linum-update-window-scale-fix (win)
-  "fix linum for scaled text"
-  (set-window-margins win
-          (ceiling (* (if (boundp 'text-scale-mode-step)
-                  (expt text-scale-mode-step
-                    text-scale-mode-amount) 1)
-              (if (car (window-margins))
-                  (car (window-margins)) 1)
-              ))))
+    "fix linum for scaled text"
+    (set-window-margins win
+                        (ceiling (* (if (boundp 'text-scale-mode-step)
+                                        (expt text-scale-mode-step
+                                              text-scale-mode-amount) 1)
+                                    (if (car (window-margins))
+                                        (car (window-margins)) 1)
+                                    ))))
   (advice-add #'linum-update-window :after #'linum-update-window-scale-fix))
 
 
@@ -306,41 +327,41 @@
   (evil-leader/set-leader "<SPC>")
 
   (evil-leader/set-key
-   "d" 'diff-buffer-with-file
-   ;"b" 'buffer-menu
-   "v" 'ivy-switch-buffer
-   "b" 'buffer-menu
-   ;"f" '(lambda ()  (interactive) (dired '"./"))
-   "f" 'neotree-toggle
-   "u" 'undo-tree-visualize
-   ;"m" 'recentf-open-files
-   "m" 'ivy-switch-buffer ; includes recentf data
-   "l" 'auto-fill-mode
-   "s" '(lambda ()
-  	(interactive)
-  	;; use flyspell-mode when in text buffers, otherwise use flyspell-prog-mode
-  	(let* ((current-mode
-  	       (buffer-local-value 'major-mode (current-buffer)))
-  	      (flyspell-mode-to-call
-  	       (if (or (string= current-mode "text-mode") (string= current-mode "markdown-mode"))
-  		   'flyspell-mode
-  		 'flyspell-prog-mode)))
-  	  ;; toggle the current flyspell mode, and eval the buffer if we turned it on
-  	  (if flyspell-mode
-  	      (funcall 'flyspell-mode '0)
-  	    (funcall flyspell-mode-to-call)
-  	    (flyspell-buffer))))
-   ;"a" 'auto-complete-mode
-   "a" 'company-mode
-   "g" '(lambda () (interactive) (evil-magit-init) (magit-status))
-   "M-g" 'magit-dispatch-popup
-   "c" 'flycheck-mode
-   ))
+    "d" 'diff-buffer-with-file
+    ;"b" 'buffer-menu
+    "v" 'ivy-switch-buffer
+    "b" 'buffer-menu
+    ;"f" '(lambda ()  (interactive) (dired '"./"))
+    "f" 'neotree-toggle
+    "u" 'undo-tree-visualize
+    ;"m" 'recentf-open-files
+    "m" 'ivy-switch-buffer ; includes recentf data
+    "l" 'auto-fill-mode
+    "s" '(lambda ()
+           (interactive)
+           ;; use flyspell-mode when in text buffers, otherwise use flyspell-prog-mode
+           (let* ((current-mode
+                   (buffer-local-value 'major-mode (current-buffer)))
+                  (flyspell-mode-to-call
+                   (if (or (string= current-mode "text-mode") (string= current-mode "markdown-mode"))
+                       'flyspell-mode
+                     'flyspell-prog-mode)))
+             ;; toggle the current flyspell mode, and eval the buffer if we turned it on
+             (if flyspell-mode
+                 (funcall 'flyspell-mode '0)
+               (funcall flyspell-mode-to-call)
+               (flyspell-buffer))))
+                                        ;"a" 'auto-complete-mode
+    "a" 'company-mode
+    "g" '(lambda () (interactive) (evil-magit-init) (magit-status))
+    "M-g" 'magit-dispatch-popup
+    "c" 'flycheck-mode
+    ))
 
 (if (not (eq system-type 'windows-nt))
     (lambda ()
       ((use-package magit
-	 :diminish magit-auto-revert-mode)
+         :diminish magit-auto-revert-mode)
 
        (use-package evil-magit)
 
@@ -351,7 +372,7 @@
 
 (use-package neotree
   :config
-  ; Set vi-like bindings in neotree-mode that don't conflict with evil
+  ;; Set vi-like bindings in neotree-mode that don't conflict with evil
   (evil-define-key 'normal neotree-mode-map (kbd "TAB") 'neotree-enter)
   (evil-define-key 'normal neotree-mode-map (kbd "SPC") 'neotree-enter)
   (evil-define-key 'normal neotree-mode-map (kbd "q") 'neotree-hide)
@@ -359,15 +380,14 @@
   (evil-define-key 'normal neotree-mode-map (kbd "h") 'neotree-hidden-file-toggle)
   (evil-define-key 'normal neotree-mode-map (kbd "r") 'neotree-refresh)
 
-  ;Every time when the neotree window is opened, let it find current file and jump to node.
+  ;; Every time when the neotree window is opened, let it find current file and jump to node.
   (setq neo-smart-open t)
 
-  ; List of files to hide
+                                        ; List of files to hide
   (setq neo-hidden-regexp-list '("^\\." "\\.pyc$" "~$" "^#.*#$" "\\.elc$" "\\.class")))
 
 
 ;; tide/typescript
-
 (setq typescript-indent-level 2)
 
 ;; JavaScript
@@ -378,7 +398,7 @@
   :config
   (add-to-list 'auto-mode-alist '("\\.scm\\'" . racket-mode))
 
-  ; C-w prefix in racket-REPL
+                                        ; C-w prefix in racket-REPL
   (add-hook 'racket-repl-mode-hook 'racket-repl-evil-hook)
 
   (defun racket-repl-evil-hook ()
@@ -434,7 +454,7 @@
 
 (use-package dtrt-indent
   :diminish dtrt-indent-mode
-  :config 
+  :config
   (dtrt-indent-mode 1))