From ced0fe8f9ef7cd16ade900bb34393c627f6d0c69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs?= Date: Tue, 22 Jan 2019 15:45:41 -0500 Subject: Change directory lisp/ to modules/ FS #2 --- custom.el | 2 +- init.el | 11 ++++- lisp/init-ccc.el | 25 ---------- lisp/init-crystal.el | 7 --- lisp/init-diminish.el | 9 ---- lisp/init-dokuwiki.el | 4 -- lisp/init-ecb.el | 19 -------- lisp/init-editing-utils.el | 57 ----------------------- lisp/init-editorconfig.el | 8 ---- lisp/init-elpa.el | 33 ------------- lisp/init-emmet-mode.el | 10 ---- lisp/init-flycheck.el | 26 ----------- lisp/init-git.el | 97 -------------------------------------- lisp/init-gui.el | 68 --------------------------- lisp/init-html.el | 13 ------ lisp/init-icons.el | 17 ------- lisp/init-indent-guides.el | 9 ---- lisp/init-less.el | 7 --- lisp/init-markdown.el | 33 ------------- lisp/init-modeline.el | 46 ------------------ lisp/init-neotree.el | 90 ----------------------------------- lisp/init-nginx.el | 7 --- lisp/init-nlinum.el | 76 ------------------------------ lisp/init-php.el | 29 ------------ lisp/init-pkgbuild.el | 4 -- lisp/init-python.el | 32 ------------- lisp/init-rainbow.el | 11 ----- lisp/init-ready.el | 13 ------ lisp/init-sass.el | 7 --- lisp/init-scss.el | 7 --- lisp/init-security.el | 12 ----- lisp/init-theme.el | 10 ---- lisp/init-utils.el | 24 ---------- lisp/init-web-mode.el | 14 ------ lisp/init-whitespace.el | 6 --- lisp/init-yaml.el | 5 -- lisp/lib/myemacs.el | 18 ------- lisp/lib/sachachua.el | 39 ---------------- modules/init-ccc.el | 25 ++++++++++ modules/init-crystal.el | 16 +++++++ modules/init-diminish.el | 17 +++++++ modules/init-dokuwiki.el | 12 +++++ modules/init-ecb.el | 29 ++++++++++++ modules/init-editing-utils.el | 69 +++++++++++++++++++++++++++ modules/init-editorconfig.el | 16 +++++++ modules/init-elpa.el | 41 ++++++++++++++++ modules/init-emmet-mode.el | 18 +++++++ modules/init-flycheck.el | 35 ++++++++++++++ modules/init-git.el | 103 ++++++++++++++++++++++++++++++++++++++++ modules/init-gui.el | 68 +++++++++++++++++++++++++++ modules/init-html.el | 24 ++++++++++ modules/init-icons.el | 28 +++++++++++ modules/init-indent-guides.el | 18 +++++++ modules/init-less.el | 15 ++++++ modules/init-markdown.el | 37 +++++++++++++++ modules/init-modeline.el | 54 +++++++++++++++++++++ modules/init-neotree.el | 90 +++++++++++++++++++++++++++++++++++ modules/init-nginx.el | 15 ++++++ modules/init-nlinum.el | 106 ++++++++++++++++++++++++++++++++++++++++++ modules/init-php.el | 29 ++++++++++++ modules/init-pkgbuild.el | 10 ++++ modules/init-python.el | 43 +++++++++++++++++ modules/init-rainbow.el | 17 +++++++ modules/init-ready.el | 18 +++++++ modules/init-sass.el | 14 ++++++ modules/init-scss.el | 14 ++++++ modules/init-security.el | 22 +++++++++ modules/init-theme.el | 17 +++++++ modules/init-utils.el | 31 ++++++++++++ modules/init-web-mode.el | 20 ++++++++ modules/init-whitespace.el | 12 +++++ modules/init-yaml.el | 11 +++++ modules/lib/myemacs.el | 37 +++++++++++++++ modules/lib/sachachua.el | 39 ++++++++++++++++ settings.el | 15 +++++- 75 files changed, 1194 insertions(+), 896 deletions(-) delete mode 100644 lisp/init-ccc.el delete mode 100644 lisp/init-crystal.el delete mode 100644 lisp/init-diminish.el delete mode 100644 lisp/init-dokuwiki.el delete mode 100644 lisp/init-ecb.el delete mode 100644 lisp/init-editing-utils.el delete mode 100644 lisp/init-editorconfig.el delete mode 100644 lisp/init-elpa.el delete mode 100644 lisp/init-emmet-mode.el delete mode 100644 lisp/init-flycheck.el delete mode 100644 lisp/init-git.el delete mode 100644 lisp/init-gui.el delete mode 100644 lisp/init-html.el delete mode 100644 lisp/init-icons.el delete mode 100644 lisp/init-indent-guides.el delete mode 100644 lisp/init-less.el delete mode 100644 lisp/init-markdown.el delete mode 100644 lisp/init-modeline.el delete mode 100644 lisp/init-neotree.el delete mode 100644 lisp/init-nginx.el delete mode 100644 lisp/init-nlinum.el delete mode 100644 lisp/init-php.el delete mode 100644 lisp/init-pkgbuild.el delete mode 100644 lisp/init-python.el delete mode 100644 lisp/init-rainbow.el delete mode 100644 lisp/init-ready.el delete mode 100644 lisp/init-sass.el delete mode 100644 lisp/init-scss.el delete mode 100644 lisp/init-security.el delete mode 100644 lisp/init-theme.el delete mode 100644 lisp/init-utils.el delete mode 100644 lisp/init-web-mode.el delete mode 100644 lisp/init-whitespace.el delete mode 100644 lisp/init-yaml.el delete mode 100644 lisp/lib/myemacs.el delete mode 100644 lisp/lib/sachachua.el create mode 100644 modules/init-ccc.el create mode 100644 modules/init-crystal.el create mode 100644 modules/init-diminish.el create mode 100644 modules/init-dokuwiki.el create mode 100644 modules/init-ecb.el create mode 100644 modules/init-editing-utils.el create mode 100644 modules/init-editorconfig.el create mode 100644 modules/init-elpa.el create mode 100644 modules/init-emmet-mode.el create mode 100644 modules/init-flycheck.el create mode 100644 modules/init-git.el create mode 100644 modules/init-gui.el create mode 100644 modules/init-html.el create mode 100644 modules/init-icons.el create mode 100644 modules/init-indent-guides.el create mode 100644 modules/init-less.el create mode 100644 modules/init-markdown.el create mode 100644 modules/init-modeline.el create mode 100644 modules/init-neotree.el create mode 100644 modules/init-nginx.el create mode 100644 modules/init-nlinum.el create mode 100644 modules/init-php.el create mode 100644 modules/init-pkgbuild.el create mode 100644 modules/init-python.el create mode 100644 modules/init-rainbow.el create mode 100644 modules/init-ready.el create mode 100644 modules/init-sass.el create mode 100644 modules/init-scss.el create mode 100644 modules/init-security.el create mode 100644 modules/init-theme.el create mode 100644 modules/init-utils.el create mode 100644 modules/init-web-mode.el create mode 100644 modules/init-whitespace.el create mode 100644 modules/init-yaml.el create mode 100644 modules/lib/myemacs.el create mode 100644 modules/lib/sachachua.el diff --git a/custom.el b/custom.el index 872dbf0..d759b67 100644 --- a/custom.el +++ b/custom.el @@ -11,7 +11,7 @@ '(ecb-options-version "2.50") '(package-selected-packages (quote - (shrink-path git-gutter-fringe git-timemachine gitattributes-mode gitignore-mode gitconfig-mode yaml-mode whitespace-cleanup-mode web-mode use-package undo-tree sublime-themes sml-modeline smart-mode-line-powerline-theme scss-mode sass-mode rainbow-mode pkgbuild-mode pip-requirements php-refactor-mode nlinum nginx-mode neotree markdown-mode less-css-mode jedi highlight-indent-guides flycheck emmet-mode ecb dokuwiki-mode diminish crystal-mode company-php anzu all-the-icons)))) + (editorconfig yaml-mode whitespace-cleanup-mode web-mode vlf use-package undo-tree sublime-themes sml-modeline smart-mode-line-powerline-theme shrink-path scss-mode sass-mode rainbow-mode pkgbuild-mode pip-requirements php-refactor-mode nlinum nginx-mode neotree markdown-mode less-css-mode jedi highlight-indent-guides gitignore-mode gitconfig-mode gitattributes-mode git-timemachine git-gutter-fringe flycheck emmet-mode ecb dokuwiki-mode diminish crystal-mode company-php bug-hunter anzu all-the-icons)))) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. diff --git a/init.el b/init.el index 58a3547..8493e48 100644 --- a/init.el +++ b/init.el @@ -1,12 +1,16 @@ +;;; init.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; ;; Emacs!!! +;;; Code: (package-initialize) (when (version<= emacs-version "24") (error "This is made form Emacs >=24")) (defconst emacs-start-time (current-time)) -(add-to-list 'load-path (expand-file-name "~/.emacs.d/lisp/" user-emacs-directory)) +(add-to-list 'load-path (expand-file-name "~/.emacs.d/modules/" user-emacs-directory)) ;;; Raise garbage collection threshold after init (add-hook 'after-init-hook @@ -63,6 +67,7 @@ (require 'init-web-mode) (require 'init-ready) (require 'init-dokuwiki) + ;;; Loads custom file (when (file-exists-p custom-file) (load custom-file)) @@ -73,3 +78,7 @@ (message "[STARTUP] Loading %s ... done (%.3fs)" load-file-name elapsed))) (provide 'init) +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init.el ends here diff --git a/lisp/init-ccc.el b/lisp/init-ccc.el deleted file mode 100644 index 6733f3e..0000000 --- a/lisp/init-ccc.el +++ /dev/null @@ -1,25 +0,0 @@ -;;; init-ccc.el --- .Emacs Configuration -*- lexical-binding: t -*- -;;; Commentary: -;; - -;;; Code: - -;;---------------------------------------------------------------------------- -;; c++ Mode -;;---------------------------------------------------------------------------- -(add-hook 'c++-mode-hook - (lambda () - (setq indent-tabs-mode t) - (setq c-basic-offset 4) - (setq tab-width 4))) - -;; This is my default indent. -;; After moving the cursor to line 2 I see that the relevant symbol is comment-intro. -(c-set-offset 'comment-intro 6) - -(provide 'init-ccc) - -;; Local Variables: -;; byte-compile-warnings: (not free-vars) -;; End: -;;; init-ccc.el ends here diff --git a/lisp/init-crystal.el b/lisp/init-crystal.el deleted file mode 100644 index a62061b..0000000 --- a/lisp/init-crystal.el +++ /dev/null @@ -1,7 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Crystal Mode -;;---------------------------------------------------------------------------- -(use-package crystal-mode - :mode ("\\.cr\\'" . crystal-mode)) - -(provide 'init-crystal) diff --git a/lisp/init-diminish.el b/lisp/init-diminish.el deleted file mode 100644 index 3187103..0000000 --- a/lisp/init-diminish.el +++ /dev/null @@ -1,9 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Diminish - is minor modes with no modeline display -;;---------------------------------------------------------------------------- -(use-package diminish) - -;; Hide undo-tree-mode -(diminish 'undo-tree-mode) - -(provide 'init-diminish) diff --git a/lisp/init-dokuwiki.el b/lisp/init-dokuwiki.el deleted file mode 100644 index 011c5bb..0000000 --- a/lisp/init-dokuwiki.el +++ /dev/null @@ -1,4 +0,0 @@ -;; dokuwiki-mode -(use-package dokuwiki-mode) - -(provide 'init-dokuwiki) diff --git a/lisp/init-ecb.el b/lisp/init-ecb.el deleted file mode 100644 index 83e1286..0000000 --- a/lisp/init-ecb.el +++ /dev/null @@ -1,19 +0,0 @@ -;;---------------------------------------------------------------------------- -;; ECB -;;---------------------------------------------------------------------------- -(use-package ecb - :config - (custom-set-variables '(ecb-options-version "2.50")) - (setq-default ecb-tip-of-the-day nil) - (setq ecb-examples-bufferinfo-buffer-name nil) - - (defun ecb-toggle () - (interactive) - (if ecb-minor-mode - (ecb-deactivate) - (ecb-activate))) - (global-set-key [f2] 'ecb-toggle) - - ) - -(provide 'init-ecb) diff --git a/lisp/init-editing-utils.el b/lisp/init-editing-utils.el deleted file mode 100644 index 292fa1d..0000000 --- a/lisp/init-editing-utils.el +++ /dev/null @@ -1,57 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Remove whitespaces -;;---------------------------------------------------------------------------- -;; Delete trailing whitespace before saving fil → all modes -;; (add-hook 'before-save-hook 'delete-trailing-whitespace) - -;; Delete-trailing-whitespace-when-saving-except-certain-modes -(add-hook 'before-save-hook - (lambda () - (unless (eq major-mode 'diff-mode) - (delete-trailing-whitespace)))) -;;---------------------------------------------------------------------------- -;; Automatic pairs open symbols (, {, [... -;; Disable for default. -;; Uncomment the next 4 lines if you want to enable the pairs-mode -;;(when (fboundp 'electric-pair-mode) -;; (electric-pair-mode)) -;;(when (eval-when-compile (version< "24.4" emacs-version)) -;; (electric-indent-mode 1)) - -;; Active auto-revert-mode that automatically reloads modified files out of Emacs. -;; It is very useful to see logs (like auto-revert-tail-mode) among many other cases. -(global-auto-revert-mode) -(setq global-auto-revert-non-file-buffers t - auto-revert-verbose nil) - -;;---------------------------------------------------------------------------- -;; Show matching parens -;;---------------------------------------------------------------------------- -(show-paren-mode 1) - -;;---------------------------------------------------------------------------- -;; More useful things - only one line -;;---------------------------------------------------------------------------- -(set-default 'truncate-lines t) -(setq show-trailing-whitespace nil) - -;;---------------------------------------------------------------------------- -;; Some basic preferences -;;---------------------------------------------------------------------------- -(setq-default - indent-tabs-mode nil) - -;;---------------------------------------------------------------------------- -;; Undo-tree -;;---------------------------------------------------------------------------- -(use-package undo-tree - :diminish undo-tree-mode - :config - (progn - (global-undo-tree-mode) - (setq undo-tree-visualizer-timestamps nil) - (setq undo-tree-visualizer-diff nil))) - -;;---------------------------------------------------------------------------- -(myemacs/elapsed-time) -(provide 'init-editing-utils) diff --git a/lisp/init-editorconfig.el b/lisp/init-editorconfig.el deleted file mode 100644 index b2eed4f..0000000 --- a/lisp/init-editorconfig.el +++ /dev/null @@ -1,8 +0,0 @@ -;;---------------------------------------------------------------------------- -;; EditorConfig -;;---------------------------------------------------------------------------- -(use-package editorconfig) - -(editorconfig-mode 1) - -(provide 'init-editorconfig) diff --git a/lisp/init-elpa.el b/lisp/init-elpa.el deleted file mode 100644 index e5a6a3d..0000000 --- a/lisp/init-elpa.el +++ /dev/null @@ -1,33 +0,0 @@ -;;; Find and load the correct package.el -;; ===================================================== -;; use-package → https://github.com/jwiegley/use-package -;; ===================================================== -(require 'package) - -;; Repositories -;; ================ -(setq package-archives - '(("melpa" . "https://melpa.org/packages/") - ;;("melpa-stable" . "https://stable.melpa.org/packages/") - ("gnu" . "https://elpa.gnu.org/packages/") - ("org" . "https://orgmode.org/elpa/"))) - -(setq package-archive-priorities - '(("melpa" . 4) - ("melpa-stable" . 0) - ("gnu" . 1) - ("org" . 3))) -;; ================= -(package-initialize) - -(unless (package-installed-p 'use-package) - (package-refresh-contents) - (package-install 'use-package)) - -(require 'use-package) -(setq use-package-always-ensure t) -;; ===================================================== -;; End use-package -;; ===================================================== - -(provide 'init-elpa) diff --git a/lisp/init-emmet-mode.el b/lisp/init-emmet-mode.el deleted file mode 100644 index e0a49f8..0000000 --- a/lisp/init-emmet-mode.el +++ /dev/null @@ -1,10 +0,0 @@ -;; emmet-mode -(use-package emmet-mode - ;; Enable for only languages - :init - (add-hook 'sgml-mode-hook 'emmet-mode) ;; Auto-start on any markup modes - (add-hook 'web-mode-hook 'emmet-mode) ;; enable Emmet on web-mode - (add-hook 'css-mode-hook 'emmet-mode) ;; enable Emmet's css abbreviation. -) - -(provide 'init-emmet-mode) diff --git a/lisp/init-flycheck.el b/lisp/init-flycheck.el deleted file mode 100644 index aa513c5..0000000 --- a/lisp/init-flycheck.el +++ /dev/null @@ -1,26 +0,0 @@ -(use-package flycheck - ;; Enable for only languages - :init - ;; (add-hook 'after-init-hook 'global-flycheck-mode) - (add-hook 'c++-mode-hook 'flycheck-mode) - ;; (add-hook 'emacs-lisp-mode-hook 'flycheck-mode) - (add-hook 'html-mode-hook 'flycheck-mode) - (add-hook 'js-mode-hook 'flycheck-mode) - (add-hook 'web-mode-hook 'flycheck-mode) - (add-hook 'sh-mode-hook 'flycheck-mode) - :config - ;; support web-mode with PHP - (flycheck-define-checker mix-php - "A PHP syntax checker using the PHP command line interpreter. - See URL `https://php.net/manual/en/features.commandline.php'." - :command ("php" "-l" "-d" "error_reporting=E_ALL" "-d" "display_errors=1" - "-d" "log_errors=0" source) - :error-patterns - ((error line-start (or "Parse" "Fatal" "syntax") " error" (any ":" ",") " " - (message) " in " (file-name) " on line " line line-end)) - :modes (php-mode php+-mode web-mode)) - - (add-to-list 'flycheck-checkers 'mix-php) - ) - -(provide 'init-flycheck) diff --git a/lisp/init-git.el b/lisp/init-git.el deleted file mode 100644 index ef7acc1..0000000 --- a/lisp/init-git.el +++ /dev/null @@ -1,97 +0,0 @@ -;;; init-git.el --- .Emacs Configuration -*- lexical-binding: t -*- -;;; Commentary: -;; - -;;; Code: -(setq vc-follows-symlinks t - find-file-visit-truename t - vc-handled-backends nil) - -(if (display-graphic-p) - (use-package git-gutter-fringe - :ensure t - :config - (global-git-gutter-mode t) - (setq-default fringes-outside-margins t) - (setq-default left-fringe-width 10) - (setq indicate-empty-lines nil) - (set-face-foreground 'git-gutter-fr:modified "purple") - (set-face-foreground 'git-gutter-fr:added "green") - (set-face-foreground 'git-gutter-fr:deleted "red") - - (defun my-reshape-git-gutter (gutter) - "Re-shape gutter for `ivy-read'." - (let* ((linenum-start (aref gutter 3)) - (linenum-end (aref gutter 4)) - (target-line "") - (target-linenum 1) - (tmp-line "") - (max-line-length 0)) - (save-excursion - (while (<= linenum-start linenum-end) - (goto-line linenum-start) - (setq tmp-line (replace-regexp-in-string "^[ \t]*" "" - (buffer-substring (line-beginning-position) - (line-end-position)))) - (when (> (length tmp-line) max-line-length) - (setq target-linenum linenum-start) - (setq target-line tmp-line) - (setq max-line-length (length tmp-line))) - - (setq linenum-start (1+ linenum-start)))) - ;; build (key . linenum-start) - (cons (format "%s %d: %s" - (if (eq 'deleted (aref gutter 1)) "-" "+") - target-linenum target-line) - target-linenum))) - - (defun my-goto-git-gutter () - (interactive) - (if git-gutter-fr:diffinfos - (ivy-read "git-gutters-fr:" - (mapcar 'my-reshape-git-gutter git-gutter-fr:diffinfos) - :action (lambda (e) - ;; ivy9+ keep `(car e)' - ;; ivy8- strip the `(car e)' - ;; we handle both data structure - (unless (numberp e) (setq e (cdr e))) - (goto-line e))) - (message "NO git-gutters-fringe!"))))) - -(use-package gitconfig-mode - :ensure t - :mode ("/\\.?git/?config$" - "/\\.gitmodules$") - :init (add-hook 'gitconfig-mode-hook 'flyspell-mode)) - -(use-package gitignore-mode - :ensure t - :mode ("/\\.gitignore$" - "/\\.git/info/exclude$" - "/git/ignore$")) - -(use-package gitattributes-mode - :ensure t - :defer t) - -(use-package git-timemachine - :ensure t - :commands git-timemachine - :bind (:map git-timemachine-mode - ("c" . git-timemachine-show-current-revision) - ("b" . git-timemachine-switch-branch))) - -;;; smerge-mode video explain https://emacsgifs.github.io/public/videos/758861381898637313.mp4 -(use-package smerge-mode - :ensure t - :config - (defun enable-smerge-maybe () - (when (and buffer-file-name (vc-backend buffer-file-name)) - (save-excursion - (goto-char (point-min)) - (when (re-search-forward "^<<<<<<< " nil t) - (smerge-mode +1))))) - (add-hook 'buffer-list-update-hook #'enable-smerge-maybe)) - -(provide 'init-git) -;;; init-git.el ends here diff --git a/lisp/init-gui.el b/lisp/init-gui.el deleted file mode 100644 index 9bd32a5..0000000 --- a/lisp/init-gui.el +++ /dev/null @@ -1,68 +0,0 @@ -;;; init-gui.el --- .Emacs Configuration -*- lexical-binding: t -*- -;;; Commentary: -;; - -;;; Code: -;;----------------------- -;; Remove some GUI stuff -;;----------------------- -(setq use-file-dialog nil) -(setq use-dialog-box nil) -(setq inhibit-startup-screen t) -(setq inhibit-startup-echo-area-message t) -(tool-bar-mode 0) -(set-scroll-bar-mode nil) -(menu-bar-mode 0) -(setq make-backup-files nil) ; stop creating backup~ files -(setq auto-save-default nil) ; stop creating #autosave# files - -;;---------------------------------------------------------------------------- -;; Editor configuration -;;---------------------------------------------------------------------------- -(setq indicate-empty-lines t) - -(let ((no-border '(internal-border-width . 0))) - (add-to-list 'default-frame-alist no-border) - (add-to-list 'initial-frame-alist no-border)) - -(setq frame-title-format - '((:eval (if (buffer-file-name) - (abbreviate-file-name (buffer-file-name)) - "%b")))) -;; Non-zero values for `line-spacing' can mess up ansi-term and co, -;; so we zero it explicitly in those cases. -(add-hook 'term-mode-hook - (lambda () - (setq line-spacing 0))) - -;; Font theme (Monospace, or DejaVu Sans Mono if Monospace is not -;; present) -(condition-case nil - (set-frame-font "Hack-9") - ;; (set-frame-font "Monospace-9") - ;; (set-frame-font "Anonymous Pro-10") - (error (set-frame-font "DejaVu Sans Mono-10"))) - -;;---------------------------------------------------------------------------- -;; Configure keys -;;---------------------------------------------------------------------------- -(global-unset-key (kbd "C-z")) ; Stops C-z from minimizing window -(global-set-key (kbd "M-0") (lambda () (interactive) (modify-frame-parameters nil '((alpha . 100))))) ; M-0 standard visibility -(global-set-key (kbd "") 'myemacs/toggle-fullscreen) ; F11 FullScreen -(global-set-key (kbd "s-C-+") 'sacha/increase-font-size) ; C-+ increase font size -(global-set-key (kbd "s-C--") 'sacha/decrease-font-size) ; C-- decrease font size -(global-set-key (kbd "") 'revert-buffer-no-confirm) -(global-set-key (kbd "s-h") 'global-hl-line-mode) ; Highlight current line - - -;;---------------------------------------------------------------------------- -;; clock -;;---------------------------------------------------------------------------- - -(setq display-time-day-and-date t) -(display-time) - -(provide 'init-gui) - -;; End: -;;; init-gui.el ends here diff --git a/lisp/init-html.el b/lisp/init-html.el deleted file mode 100644 index b2ad2ef..0000000 --- a/lisp/init-html.el +++ /dev/null @@ -1,13 +0,0 @@ -;;;;;;;;;;;;;;;;;;;;;;;;; -;; HTML Mode -;;;;;;;;;;;;;;;;;;;;;;;;; - -(add-hook 'html-mode-hook - (lambda () - ;; Default indentation is usually 2 spaces, changing to 4. - (set (make-local-variable 'sgml-basic-offset) 4))) - -;; highlight-indent-guides-mode -(add-hook 'html-mode-hook 'highlight-indent-guides-mode) - -(provide 'init-html) diff --git a/lisp/init-icons.el b/lisp/init-icons.el deleted file mode 100644 index 198d8c0..0000000 --- a/lisp/init-icons.el +++ /dev/null @@ -1,17 +0,0 @@ -;;---------------------------------- -;; All-the-icons -;;---------------------------------- -(use-package all-the-icons) - -;;---------------------------------- -;; Fonts - connecting with neotree -;;--------------------------------- -(if (file-exists-p "~/.local/share/fonts/all-the-icons.ttf") - (message "the icons are installed :)") - (setq neotree-mode-hook 'all-the-icons-install-fonts) - ) - -;; fix performace -(setq inhibit-compacting-font-caches t) - -(provide 'init-icons) diff --git a/lisp/init-indent-guides.el b/lisp/init-indent-guides.el deleted file mode 100644 index 24fb8d2..0000000 --- a/lisp/init-indent-guides.el +++ /dev/null @@ -1,9 +0,0 @@ -;; This minor mode highlights indentation levels via font-lock - -(use-package highlight-indent-guides - :config - (setq highlight-indent-guides-method 'character) - ;; Indent character samples: fill, column or character - (setq highlight-indent-guides-method 'character)) - -(provide 'init-indent-guides) diff --git a/lisp/init-less.el b/lisp/init-less.el deleted file mode 100644 index fdd5527..0000000 --- a/lisp/init-less.el +++ /dev/null @@ -1,7 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Less Mode -;;---------------------------------------------------------------------------- -(use-package less-css-mode - :mode ("\\.less\\'" . less-css-mode)) - -(provide 'init-less) diff --git a/lisp/init-markdown.el b/lisp/init-markdown.el deleted file mode 100644 index 0e86560..0000000 --- a/lisp/init-markdown.el +++ /dev/null @@ -1,33 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Markdown mode -;;---------------------------------------------------------------------------- -(use-package markdown-mode - :mode (("\\.markdown\\'" . markdown-mode) - ("\\.md\\'" . markdown-mode)) - - :config - ;;---------------------------------------------------------------------------- - ;; Generated HTML 5 and UTF-8 with Markdown - ;;---------------------------------------------------------------------------- - (eval-after-load "markdown-mode" - '(defalias 'markdown-add-xhtml-header-and-footer 'as/markdown-add-xhtml-header-and-footer)) - - (defun as/markdown-add-xhtml-header-and-footer (title) - "Wrap XHTML header and footer with given TITLE around current buffer." - (goto-char (point-min)) - (insert "\n" - "\n" - "\n") - (insert title) - (insert "\n") - (insert "\n") - (when (> (length markdown-css-paths) 0) - (insert (mapconcat 'markdown-stylesheet-link-string markdown-css-paths "\n"))) - (insert "\n\n\n" - "\n\n") - (goto-char (point-max)) - (insert "\n" - "\n" - "\n"))) - -(provide 'init-markdown) diff --git a/lisp/init-modeline.el b/lisp/init-modeline.el deleted file mode 100644 index 56e4f3d..0000000 --- a/lisp/init-modeline.el +++ /dev/null @@ -1,46 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Modeline configuration -;;---------------------------------------------------------------------------- - -(use-package smart-mode-line) -(use-package smart-mode-line-powerline-theme) -(use-package sml-modeline - :config - ;; Show number of occurrences when searching - (setq sml/theme 'powerline) - - (setq sml/no-confirm-load-theme t) - (setq sml/shorten-modes t) - ;; Show EOL mode - (setq sml/show-eol t) - ;; Show remote buffers - (setq sml/show-remote t) - - (sml/setup) - (add-to-list 'sml/replacer-regexp-list '("^~/Proyectos/git/" ":Git:") t) - (add-to-list 'sml/replacer-regexp-list '("^~/www/" ":www:") t) - - (sml-modeline-mode t)) -(use-package anzu - :config - (custom-set-variables - '(anzu-search-threshold 1000) - '(anzu-replace-threshold 1000) - '(anzu-deactivate-region t) - '(anzu-input-idle-delay 0.1) - '(anzu-replace-to-string-separator " => ")) - (global-anzu-mode +1) - (set-face-attribute 'anzu-mode-line nil - :foreground "yellow" :weight 'bold) - - (define-key isearch-mode-map [remap isearch-query-replace] #'anzu-isearch-query-replace) - (define-key isearch-mode-map [remap isearch-query-replace-regexp] #'anzu-isearch-query-replace-regexp) - - ;;---------------------------------------------------------------------------- - ;; Keyboard shortcuts in Anzu Mode - ;;---------------------------------------------------------------------------- - (global-set-key (kbd "M-%") 'anzu-query-replace) - (global-set-key (kbd "s-") 'anzu-query-replace)) - -(myemacs/elapsed-time) -(provide 'init-modeline) diff --git a/lisp/init-neotree.el b/lisp/init-neotree.el deleted file mode 100644 index ff38aa8..0000000 --- a/lisp/init-neotree.el +++ /dev/null @@ -1,90 +0,0 @@ -;;; init-neotree.el --- .Emacs Configuration -*- lexical-binding: t -*- -;;; Commentary: -;; - -;;; Code: -;;----------------------------------- -;; Neotree - NerdTree for Vim -;;----------------------------------- - -(use-package shrink-path - :ensure t) - -(use-package neotree - :ensure t - :commands (neotree-show - neotree-hide - neotree-toggle - neotree-dir - neotree-find - neo-global--with-buffer - neo-global--window-exists-p) - :bind (([f8] . neotree-toggle) - (:map neotree-mode-map - ("" . neotree-change-root) - ("C" . neotree-change-root) - ("c" . neotree-create-node) - ("+" . neotree-create-node) - ("d" . neotree-delete-node) - ("r" . neotree-rename-node))) - :config - (setq neo-create-file-auto-open nil - neo-auto-indent-point nil - neo-autorefresh t - neo-smart-open t - neo-mode-line-type 'none - neo-window-width 25 - neo-show-updir-line nil - neo-theme (if (display-graphic-p) 'icons 'arrow) - neo-banner-message nil - neo-confirm-create-file #'off-p - neo-confirm-create-directory #'off-p - neo-show-hidden-files nil - neo-keymap-style 'concise - neo-hidden-regexp-list - '(;; vcs folders - "^\\.\\(git\\|hg\\|svn\\)$" - ;; compiled files - "\\.\\(pyc\\|o\\|elc\\|lock\\|css.map\\)$" - ;; generated files, caches or local pkgs - "^\\(node_modules\\|vendor\\|.\\(project\\|cask\\|yardoc\\|sass-cache\\)\\)$" - ;; org-mode folders - "^\\.\\(sync\\|export\\|attach\\)$" - "~$" - "^#.*#$")) - - (when (bound-and-true-p winner-mode) - (push neo-buffer-name winner-boring-buffers)) - - (defun shrink-root-entry (node) - "shrink-print pwd in neotree" - (insert (propertize (concat (shrink-path-dirs node) "\n") 'face `(:inherit (,neo-root-dir-face))))) - - (advice-add #'neo-buffer--insert-root-entry :override #'shrink-root-entry)) - -(defun neotree-project-dir-toggle () - "Open NeoTree using the project root, using find-file-in-project or the current buffer directory." - (interactive) - (let ((project-dir - (ignore-errors - ;;; Pick one: projectile or find-file-in-project - (projectile-project-root))) - (file-name (buffer-file-name)) - (neo-smart-open t)) - (if (and (fboundp 'neo-global--window-exists-p) - (neo-global--window-exists-p)) - (neotree-hide) - (progn - (neotree-show) - (if project-dir - (neotree-dir project-dir)) - (if file-name - (neotree-find file-name)))))) - - -(provide 'init-neotree) - -;; Local Variables: -;; byte-compile-warnings: (not free-vars) -;; End: -;;; init-neotree.el ends here diff --git a/lisp/init-nginx.el b/lisp/init-nginx.el deleted file mode 100644 index 2ed0b4d..0000000 --- a/lisp/init-nginx.el +++ /dev/null @@ -1,7 +0,0 @@ -;;--------------------------- -;; Nginx Mode -;;--------------------------- -(use-package nginx-mode - :mode ("/nginx/sites-\\(?:available\\|enabled\\)/" . nginx-mode)) - -(provide 'init-nginx) diff --git a/lisp/init-nlinum.el b/lisp/init-nlinum.el deleted file mode 100644 index bd2737f..0000000 --- a/lisp/init-nlinum.el +++ /dev/null @@ -1,76 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Line numbers -;;---------------------------------------------------------------------------- -;; Linum snippets from: https://www.emacswiki.org/emacs/LineNumbers -(use-package nlinum) -(use-package linum) -(use-package hl-line) - -(defface my-linum-hl - `((t :inherit linum :background ,(face-background 'hl-line nil t))) - "Face for the current line number." - :group 'linum) -(add-hook 'linum-before-numbering-hook 'my-linum-get-format-string) - -(defun my-linum-get-format-string () - (let* ((width (1+ (length (number-to-string - (count-lines (point-min) (point-max)))))) - (format (concat "%" (number-to-string width) "d \u2502"))) - (setq my-linum-format-string format))) - -(defvar my-linum-current-line-number 0) - -(defun my-linum-format (line-number) - (propertize (format my-linum-format-string line-number) 'face - (if (eq line-number my-linum-current-line-number) - 'my-linum-hl - 'linum))) -(setq linum-format 'my-linum-format) - -(defadvice linum-update (around my-linum-update) - (let ((my-linum-current-line-number (line-number-at-pos))) - ad-do-it)) -(ad-activate 'linum-update) - -(defvar *linum-mdown-line* nil) - -(defun line-at-click () - (save-excursion - (let ((click-y (cdr (cdr (mouse-position)))) - (line-move-visual-store line-move-visual)) - (setq line-move-visual t) - (goto-char (window-start)) - (next-line (1- click-y)) - (setq line-move-visual line-move-visual-store) - ;; If you are using tabbar substitute the next line with - ;; (line-number-at-pos)))) - (1+ (line-number-at-pos))))) - -(defun md-select-linum () - (interactive) - (goto-line (line-at-click)) - (set-mark (point)) - (setq *linum-mdown-line* - (line-number-at-pos))) - -(defun mu-select-linum () - (interactive) - (when *linum-mdown-line* - (let (mu-line) - ;; (goto-line (line-at-click)) - (setq mu-line (line-at-click)) - (goto-line (max *linum-mdown-line* mu-line)) - (set-mark (line-end-position)) - (goto-line (min *linum-mdown-line* mu-line)) - (setq *linum-mdown* - nil)))) - -(global-set-key (kbd " ") 'md-select-linum) -(global-set-key (kbd " ") 'mu-select-linum) -(global-set-key (kbd " ") 'mu-select-linum) - -(add-hook 'find-file-hook (lambda () (linum-mode 1))) -(linum-mode) -(setq global-linum-mode t) - -(provide 'init-nlinum) diff --git a/lisp/init-php.el b/lisp/init-php.el deleted file mode 100644 index b81e5b8..0000000 --- a/lisp/init-php.el +++ /dev/null @@ -1,29 +0,0 @@ -;;; init-php.el --- .Emacs Configuration -*- lexical-binding: t -*- -;;; Commentary: -;; - -;;; Code: -(use-package php-refactor-mode - :after (php-mode) - :mode ("\\.php\\'" . php-mode) - :config - (add-hook 'php-mode-hook 'php-refactor-mode)) - -(use-package php-mode - :ensure t) - -(use-package company-php - :ensure t - :config - (defun cfg:php-mode-hook () - (interactive) - (require 'company-php) - (company-mode t) - (add-to-list 'company-backends 'company-ac-php-backend)) - - (add-hook 'php-mode-hook 'cfg:php-mode-hook)) - -(add-hook 'php-mode-hook (lambda () (subword-mode 1))) - -(provide 'init-php) -;;; init-php.el ends here diff --git a/lisp/init-pkgbuild.el b/lisp/init-pkgbuild.el deleted file mode 100644 index 6f6835c..0000000 --- a/lisp/init-pkgbuild.el +++ /dev/null @@ -1,4 +0,0 @@ -(use-package pkgbuild-mode - :mode ("/PKGBUILD$" . pkgbuild-mode)) - -(provide 'init-pkgbuild) diff --git a/lisp/init-python.el b/lisp/init-python.el deleted file mode 100644 index fd2845a..0000000 --- a/lisp/init-python.el +++ /dev/null @@ -1,32 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Python Mode -;;---------------------------------------------------------------------------- -(add-hook 'python-mode-hook - (lambda () - (setq indent-tabs-mode nil) - (setq python-indent-guess-indent-offset nil) - (setq python-indent-offset 4))) - - -;;---------------------------------------------------------------------------- -;; Jedi - Python auto-completion for Emacs -;;---------------------------------------------------------------------------- -(use-package jedi) -(setq auto-mode-alist - (append '(("SConstruct\\'" . python-mode) - ("SConscript\\'" . python-mode)) - auto-mode-alist)) - -(use-package pip-requirements) -(defun my/python-mode-stuff () - ;; Jedi makes everything a lot easier for everybody! - (jedi:setup) - (define-key python-mode-map (kbd "C-]") 'jedi:goto-definition) ;goto define - (local-set-key (kbd "") 'jedi:show-doc) - (setq jedi:complete-on-dot t) ; optional - ) -;; Added Jedi-mode to python-mode -(add-hook 'python-mode-hook 'my/python-mode-stuff) -;; M-x jedi:install-server - -(provide 'init-python) diff --git a/lisp/init-rainbow.el b/lisp/init-rainbow.el deleted file mode 100644 index 8305867..0000000 --- a/lisp/init-rainbow.el +++ /dev/null @@ -1,11 +0,0 @@ -;; rainbow-mode -(use-package rainbow-mode - :init - (add-hook 'css-mode-hook 'rainbow-mode) - (add-hook 'sass-mode-hook 'rainbow-mode) - (add-hook 'scss-mode-hook 'rainbow-mode) - (add-hook 'less-mode-hook 'rainbow-mode) - (add-hook 'web-mode-hook 'rainbow-mode) - (add-hook 'html-mode-hook 'rainbow-mode)) - -(provide 'init-rainbow) diff --git a/lisp/init-ready.el b/lisp/init-ready.el deleted file mode 100644 index 787a5d0..0000000 --- a/lisp/init-ready.el +++ /dev/null @@ -1,13 +0,0 @@ -;;------------------------- -;; Emacs Ready :) -;;------------------------- - -(add-hook 'emacs-startup-hook - (lambda () - (message "Emacs cargado en %s y listo para ser usado." - (format "%.2f segundos" - (float-time - (time-subtract after-init-time before-init-time))) - gcs-done))) - -(provide 'init-ready) diff --git a/lisp/init-sass.el b/lisp/init-sass.el deleted file mode 100644 index bcce530..0000000 --- a/lisp/init-sass.el +++ /dev/null @@ -1,7 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Sass Mode -;;---------------------------------------------------------------------------- -(use-package sass-mode - :mode ("\\.sass\\'" . sass-mode)) - -(provide 'init-sass) diff --git a/lisp/init-scss.el b/lisp/init-scss.el deleted file mode 100644 index a9c4a63..0000000 --- a/lisp/init-scss.el +++ /dev/null @@ -1,7 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Scss Mode -;;---------------------------------------------------------------------------- -(use-package scss-mode - :mode ("\\.scss\\'" . scss-mode)) - -(provide 'init-scss) diff --git a/lisp/init-security.el b/lisp/init-security.el deleted file mode 100644 index 995916d..0000000 --- a/lisp/init-security.el +++ /dev/null @@ -1,12 +0,0 @@ -;;--------------------------------------------------------------------------------------------- -;; Security. Check https://web.archive.org/web/20170413150436/https://ogbe.net/emacsconfig.html -;;--------------------------------------------------------------------------------------------- -(setq tls-checktrust t) -(setq gnutls-verify-error t) -(let ((trustfile "/etc/ssl/cert.pem")) - (setq tls-program - `(,(format "gnutls-cli --x509cafile %s -p %%p %%h" trustfile) - ,(format "openssl s_client -connect %%h:%%p -CAfile %s -no_ssl2 -ign_eof" trustfile))) - (setq gnutls-trustfiles (list trustfile))) - -(provide 'init-security) diff --git a/lisp/init-theme.el b/lisp/init-theme.el deleted file mode 100644 index b3f0cd1..0000000 --- a/lisp/init-theme.el +++ /dev/null @@ -1,10 +0,0 @@ -(use-package sublime-themes - :config - (load-theme 'spolsky t) - ;; Fix linum current-line highlight. Doesn't looks good with this theme - (defface my-linum-hl - '((t :background "gray30" :foreground "gold")) - "Face for the currently active Line number" - :group 'linum)) - -(provide 'init-theme) diff --git a/lisp/init-utils.el b/lisp/init-utils.el deleted file mode 100644 index a0b9fe0..0000000 --- a/lisp/init-utils.el +++ /dev/null @@ -1,24 +0,0 @@ -;; Loads functions from libs -(defun load-directory (dir) - (let ((load-it (lambda (f) - (load-file (concat (file-name-as-directory dir) f))) - )) - (mapc load-it (directory-files dir nil "\\.el$")))) - -;; Load lib functions -(load-directory (expand-file-name "~/.emacs.d/lisp/lib/" user-emacs-directory)) - -;; This is borrowed from https://github.com/purcell/emacs.d/blob/master/lisp/init-utils.el by Steve Purcell but I have added some stuff. - -(if (fboundp 'with-eval-after-load) - (defalias 'after-load 'with-eval-after-load) - (defmacro after-load (feature &rest body) - "After FEATURE is loaded, evaluate BODY." - (declare (indent defun)) - '(eval-after-load, feature - '(progn, @body)))) - -;; Elapsed time -(myemacs/elapsed-time) - -(provide 'init-utils) diff --git a/lisp/init-web-mode.el b/lisp/init-web-mode.el deleted file mode 100644 index 720e7ec..0000000 --- a/lisp/init-web-mode.el +++ /dev/null @@ -1,14 +0,0 @@ -(use-package web-mode - :mode (("\\.html?\\'" . web-mode) - ("\\.djhtml\\'" . web-mode) - ("\\.tpl\\'" . web-mode) - ("\\.jsp\\'" . web-mode) - ("\\.gsp\\'" . web-mode) - ("\\.ctp\\'" . web-mode)) - :config - ;; web-modeの設定 - (setq web-mode-enable-current-element-highlight t) - (set-face-background 'web-mode-current-element-highlight-face "#a3a3a3") - ) - -(provide 'init-web-mode) diff --git a/lisp/init-whitespace.el b/lisp/init-whitespace.el deleted file mode 100644 index 27f61c3..0000000 --- a/lisp/init-whitespace.el +++ /dev/null @@ -1,6 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Whitespace Mode | tool -;;---------------------------------------------------------------------------- -(use-package whitespace-cleanup-mode) - -(provide 'init-whitespace) diff --git a/lisp/init-yaml.el b/lisp/init-yaml.el deleted file mode 100644 index 637cb7b..0000000 --- a/lisp/init-yaml.el +++ /dev/null @@ -1,5 +0,0 @@ -;; yaml-mode -(use-package yaml-mode - :mode ("\\.yml\\'" . yaml-mode)) - -(provide 'init-yaml) diff --git a/lisp/lib/myemacs.el b/lisp/lib/myemacs.el deleted file mode 100644 index 6846bdc..0000000 --- a/lisp/lib/myemacs.el +++ /dev/null @@ -1,18 +0,0 @@ -;;---------------------------------------------------------------------------- -;; Some cool functions -;;---------------------------------------------------------------------------- -;; These functions are made by me (Quitter: @heckyel) or -;; heavily modified by me - -;;---------------------------------------------------------------------------- -;; Toggles fullscreen -;;---------------------------------------------------------------------------- -(defun myemacs/toggle-fullscreen () - (interactive) - (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 - '(2 "_NET_WM_STATE_FULLSCREEN" 0))) - -(defun myemacs/elapsed-time () - (let ((elapsed (float-time (time-subtract (current-time) - emacs-start-time)))) - (message "[STARTUP] Loading %s ... done (%.3fs)" load-file-name elapsed))) \ No newline at end of file diff --git a/lisp/lib/sachachua.el b/lisp/lib/sachachua.el deleted file mode 100644 index c862223..0000000 --- a/lisp/lib/sachachua.el +++ /dev/null @@ -1,39 +0,0 @@ -;; Increase-decrease functions from Sacha Chua -(defun sacha/increase-font-size () - (interactive) - (set-face-attribute 'default - nil - :height - (ceiling (* 1.10 - (face-attribute 'default :height))))) -(defun sacha/decrease-font-size () - (interactive) - (set-face-attribute 'default - nil - :height - (floor (* 0.9 - (face-attribute 'default :height))))) - -;; Not original from Sacha. Taken from: http://emacsredux.com/blog/2013/05/22/smarter-navigation-to-the-beginning-of-a-line/ -(defun sacha/smarter-move-beginning-of-line (arg) - "Move point back to indentation of beginning of line. - -Move point to the first non-whitespace character on this line. -If point is already there, move to the beginning of the line. -Effectively toggle between the first non-whitespace character and -the beginning of the line. - -If ARG is not nil or 1, move forward ARG - 1 lines first. If -point reaches the beginning or end of the buffer, stop there." - (interactive "^p") - (setq arg (or arg 1)) - - ;; Move lines first - (when (/= arg 1) - (let ((line-move-visual nil)) - (forward-line (1- arg)))) - - (let ((orig-point (point))) - (back-to-indentation) - (when (= orig-point (point)) - (move-beginning-of-line 1)))) diff --git a/modules/init-ccc.el b/modules/init-ccc.el new file mode 100644 index 0000000..6733f3e --- /dev/null +++ b/modules/init-ccc.el @@ -0,0 +1,25 @@ +;;; init-ccc.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: + +;;---------------------------------------------------------------------------- +;; c++ Mode +;;---------------------------------------------------------------------------- +(add-hook 'c++-mode-hook + (lambda () + (setq indent-tabs-mode t) + (setq c-basic-offset 4) + (setq tab-width 4))) + +;; This is my default indent. +;; After moving the cursor to line 2 I see that the relevant symbol is comment-intro. +(c-set-offset 'comment-intro 6) + +(provide 'init-ccc) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-ccc.el ends here diff --git a/modules/init-crystal.el b/modules/init-crystal.el new file mode 100644 index 0000000..462b902 --- /dev/null +++ b/modules/init-crystal.el @@ -0,0 +1,16 @@ +;;; init-crystal.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: + +;;---------------------------------------------------------------------------- +;; Crystal Mode +;;---------------------------------------------------------------------------- +(use-package crystal-mode + :mode ("\\.cr\\'" . crystal-mode)) + +(provide 'init-crystal) + +;; End: +;;; init-crystal.el ends here diff --git a/modules/init-diminish.el b/modules/init-diminish.el new file mode 100644 index 0000000..1968f0d --- /dev/null +++ b/modules/init-diminish.el @@ -0,0 +1,17 @@ +;;; init-diminish.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; Diminish - is minor modes with no modeline display +;;---------------------------------------------------------------------------- +(use-package diminish) + +;; Hide undo-tree-mode +(diminish 'undo-tree-mode) + +(provide 'init-diminish) + +;; End: +;;; init-diminish.el ends here diff --git a/modules/init-dokuwiki.el b/modules/init-dokuwiki.el new file mode 100644 index 0000000..40762a5 --- /dev/null +++ b/modules/init-dokuwiki.el @@ -0,0 +1,12 @@ +;;; init-dokuwiki.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;; dokuwiki-mode +(use-package dokuwiki-mode) + +(provide 'init-dokuwiki) + +;; End: +;;; init-dokuwiki.el ends here diff --git a/modules/init-ecb.el b/modules/init-ecb.el new file mode 100644 index 0000000..865b206 --- /dev/null +++ b/modules/init-ecb.el @@ -0,0 +1,29 @@ +;;; init-ecb.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; ECB +;;---------------------------------------------------------------------------- +(use-package ecb + :config + (custom-set-variables '(ecb-options-version "2.50")) + (setq-default ecb-tip-of-the-day nil) + (setq ecb-examples-bufferinfo-buffer-name nil) + + (defun ecb-toggle () + (interactive) + (if ecb-minor-mode + (ecb-deactivate) + (ecb-activate))) + (global-set-key [f2] 'ecb-toggle) + + ) + +(provide 'init-ecb) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-ecb.el ends here diff --git a/modules/init-editing-utils.el b/modules/init-editing-utils.el new file mode 100644 index 0000000..b789d2c --- /dev/null +++ b/modules/init-editing-utils.el @@ -0,0 +1,69 @@ +;;; init-editing-utils.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: + +;;---------------------------------------------------------------------------- +;; Remove whitespaces +;;---------------------------------------------------------------------------- +;; Delete trailing whitespace before saving fil → all modes +;; (add-hook 'before-save-hook 'delete-trailing-whitespace) + +;; Delete-trailing-whitespace-when-saving-except-certain-modes +(add-hook 'before-save-hook + (lambda () + (unless (eq major-mode 'diff-mode) + (delete-trailing-whitespace)))) +;;---------------------------------------------------------------------------- +;; Automatic pairs open symbols (, {, [... +;; Disable for default. +;; Uncomment the next 4 lines if you want to enable the pairs-mode +;;(when (fboundp 'electric-pair-mode) +;; (electric-pair-mode)) +;;(when (eval-when-compile (version< "24.4" emacs-version)) +;; (electric-indent-mode 1)) + +;; Active auto-revert-mode that automatically reloads modified files out of Emacs. +;; It is very useful to see logs (like auto-revert-tail-mode) among many other cases. +(global-auto-revert-mode) +(setq global-auto-revert-non-file-buffers t + auto-revert-verbose nil) + +;;---------------------------------------------------------------------------- +;; Show matching parens +;;---------------------------------------------------------------------------- +(show-paren-mode 1) + +;;---------------------------------------------------------------------------- +;; More useful things - only one line +;;---------------------------------------------------------------------------- +(set-default 'truncate-lines t) +(setq show-trailing-whitespace nil) + +;;---------------------------------------------------------------------------- +;; Some basic preferences +;;---------------------------------------------------------------------------- +(setq-default + indent-tabs-mode nil) + +;;---------------------------------------------------------------------------- +;; Undo-tree +;;---------------------------------------------------------------------------- +(use-package undo-tree + :diminish undo-tree-mode + :config + (progn + (global-undo-tree-mode) + (setq undo-tree-visualizer-timestamps nil) + (setq undo-tree-visualizer-diff nil))) + +;;---------------------------------------------------------------------------- +(load-file "~/.emacs.d/modules/lib/myemacs.el") + +(provide 'init-editing-utils) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-editing-utils.el ends here diff --git a/modules/init-editorconfig.el b/modules/init-editorconfig.el new file mode 100644 index 0000000..614dcce --- /dev/null +++ b/modules/init-editorconfig.el @@ -0,0 +1,16 @@ +;;; init-editorconfig.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; EditorConfig +;;---------------------------------------------------------------------------- +(use-package editorconfig + :config + (editorconfig-mode 1)) + +(provide 'init-editorconfig) + +;; End: +;;; init-editorconfig.el ends here diff --git a/modules/init-elpa.el b/modules/init-elpa.el new file mode 100644 index 0000000..51f29c8 --- /dev/null +++ b/modules/init-elpa.el @@ -0,0 +1,41 @@ +;;; init-elpa.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;; Find and load the correct package.el +;; ===================================================== +;; use-package → https://github.com/jwiegley/use-package +;; ===================================================== +(require 'package) + +;; Repositories +;; ================ +(setq package-archives + '(("melpa" . "https://melpa.org/packages/") + ;;("melpa-stable" . "https://stable.melpa.org/packages/") + ("gnu" . "https://elpa.gnu.org/packages/") + ("org" . "https://orgmode.org/elpa/"))) + +(setq package-archive-priorities + '(("melpa" . 4) + ("melpa-stable" . 0) + ("gnu" . 1) + ("org" . 3))) +;; ================= +(package-initialize) + +(unless (package-installed-p 'use-package) + (package-refresh-contents) + (package-install 'use-package)) + +(require 'use-package) +(setq use-package-always-ensure t) +;; ===================================================== +;; End use-package +;; ===================================================== + +(provide 'init-elpa) + +;; End: +;;; init-elpa.el ends here diff --git a/modules/init-emmet-mode.el b/modules/init-emmet-mode.el new file mode 100644 index 0000000..565266b --- /dev/null +++ b/modules/init-emmet-mode.el @@ -0,0 +1,18 @@ +;;; init-emmet-mode.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;; emmet-mode +(use-package emmet-mode + ;; Enable for only languages + :init + (add-hook 'sgml-mode-hook 'emmet-mode) ;; Auto-start on any markup modes + (add-hook 'web-mode-hook 'emmet-mode) ;; enable Emmet on web-mode + (add-hook 'css-mode-hook 'emmet-mode) ;; enable Emmet's css abbreviation. +) + +(provide 'init-emmet-mode) + +;; End: +;;; init-emmet-mode.el ends here diff --git a/modules/init-flycheck.el b/modules/init-flycheck.el new file mode 100644 index 0000000..e4d383e --- /dev/null +++ b/modules/init-flycheck.el @@ -0,0 +1,35 @@ +;;; init-flycheck.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: + +(use-package flycheck + ;; Enable for only languages + :init + ;; (add-hook 'after-init-hook 'global-flycheck-mode) + (add-hook 'c++-mode-hook 'flycheck-mode) + ;; (add-hook 'emacs-lisp-mode-hook 'flycheck-mode) + (add-hook 'html-mode-hook 'flycheck-mode) + (add-hook 'js-mode-hook 'flycheck-mode) + (add-hook 'web-mode-hook 'flycheck-mode) + (add-hook 'sh-mode-hook 'flycheck-mode) + :config + ;; support web-mode with PHP + (flycheck-define-checker mix-php + "A PHP syntax checker using the PHP command line interpreter. + See URL `https://php.net/manual/en/features.commandline.php'." + :command ("php" "-l" "-d" "error_reporting=E_ALL" "-d" "display_errors=1" + "-d" "log_errors=0" source) + :error-patterns + ((error line-start (or "Parse" "Fatal" "syntax") " error" (any ":" ",") " " + (message) " in " (file-name) " on line " line line-end)) + :modes (php-mode php+-mode web-mode)) + + (add-to-list 'flycheck-checkers 'mix-php) + ) + +(provide 'init-flycheck) + +;; End: +;;; init-flycheck.el ends here diff --git a/modules/init-git.el b/modules/init-git.el new file mode 100644 index 0000000..7e96247 --- /dev/null +++ b/modules/init-git.el @@ -0,0 +1,103 @@ +;;; init-git.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +(setq vc-follows-symlinks t + find-file-visit-truename t + vc-handled-backends nil) + +(if (display-graphic-p) + (use-package git-gutter-fringe + :ensure t + :config + (global-git-gutter-mode t) + (setq-default fringes-outside-margins t) + (setq-default left-fringe-width 10) + (setq indicate-empty-lines nil) + (set-face-foreground 'git-gutter-fr:modified "purple") + (set-face-foreground 'git-gutter-fr:added "green") + (set-face-foreground 'git-gutter-fr:deleted "red") + + (defun my-reshape-git-gutter (gutter) + "Re-shape gutter for `ivy-read'." + (let* ((linenum-start (aref gutter 3)) + (linenum-end (aref gutter 4)) + (target-line "") + (target-linenum 1) + (tmp-line "") + (max-line-length 0)) + (save-excursion + (while (<= linenum-start linenum-end) + (with-no-warnings + (goto-line linenum-start)) + (setq tmp-line (replace-regexp-in-string "^[ \t]*" "" + (buffer-substring (line-beginning-position) + (line-end-position)))) + (when (> (length tmp-line) max-line-length) + (setq target-linenum linenum-start) + (setq target-line tmp-line) + (setq max-line-length (length tmp-line))) + + (setq linenum-start (1+ linenum-start)))) + ;; build (key . linenum-start) + (cons (format "%s %d: %s" + (if (eq 'deleted (aref gutter 1)) "-" "+") + target-linenum target-line) + target-linenum))) + + (defun my-goto-git-gutter () + (interactive) + (if git-gutter-fr:diffinfos + (ivy-read "git-gutters-fr:" + (mapcar 'my-reshape-git-gutter git-gutter-fr:diffinfos) + :action (lambda (e) + ;; ivy9+ keep `(car e)' + ;; ivy8- strip the `(car e)' + ;; we handle both data structure + (unless (numberp e) (setq e (cdr e))) + (with-no-warnings + (goto-line e)))) + (message "NO git-gutters-fringe!"))))) + +(use-package gitconfig-mode + :ensure t + :mode ("/\\.?git/?config$" + "/\\.gitmodules$") + :init (add-hook 'gitconfig-mode-hook 'flyspell-mode)) + +(use-package gitignore-mode + :ensure t + :mode ("/\\.gitignore$" + "/\\.git/info/exclude$" + "/git/ignore$")) + +(use-package gitattributes-mode + :ensure t + :defer t) + +(use-package git-timemachine + :ensure t + :commands git-timemachine + :bind (:map git-timemachine-mode + ("c" . git-timemachine-show-current-revision) + ("b" . git-timemachine-switch-branch))) + +;;; smerge-mode video explain https://emacsgifs.github.io/public/videos/758861381898637313.mp4 +(use-package smerge-mode + :ensure t + :config + (defun enable-smerge-maybe () + (when (and buffer-file-name (vc-backend buffer-file-name)) + (save-excursion + (goto-char (point-min)) + (when (re-search-forward "^<<<<<<< " nil t) + (smerge-mode +1))))) + (add-hook 'buffer-list-update-hook #'enable-smerge-maybe)) + +(provide 'init-git) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-git.el ends here diff --git a/modules/init-gui.el b/modules/init-gui.el new file mode 100644 index 0000000..9bd32a5 --- /dev/null +++ b/modules/init-gui.el @@ -0,0 +1,68 @@ +;;; init-gui.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;----------------------- +;; Remove some GUI stuff +;;----------------------- +(setq use-file-dialog nil) +(setq use-dialog-box nil) +(setq inhibit-startup-screen t) +(setq inhibit-startup-echo-area-message t) +(tool-bar-mode 0) +(set-scroll-bar-mode nil) +(menu-bar-mode 0) +(setq make-backup-files nil) ; stop creating backup~ files +(setq auto-save-default nil) ; stop creating #autosave# files + +;;---------------------------------------------------------------------------- +;; Editor configuration +;;---------------------------------------------------------------------------- +(setq indicate-empty-lines t) + +(let ((no-border '(internal-border-width . 0))) + (add-to-list 'default-frame-alist no-border) + (add-to-list 'initial-frame-alist no-border)) + +(setq frame-title-format + '((:eval (if (buffer-file-name) + (abbreviate-file-name (buffer-file-name)) + "%b")))) +;; Non-zero values for `line-spacing' can mess up ansi-term and co, +;; so we zero it explicitly in those cases. +(add-hook 'term-mode-hook + (lambda () + (setq line-spacing 0))) + +;; Font theme (Monospace, or DejaVu Sans Mono if Monospace is not +;; present) +(condition-case nil + (set-frame-font "Hack-9") + ;; (set-frame-font "Monospace-9") + ;; (set-frame-font "Anonymous Pro-10") + (error (set-frame-font "DejaVu Sans Mono-10"))) + +;;---------------------------------------------------------------------------- +;; Configure keys +;;---------------------------------------------------------------------------- +(global-unset-key (kbd "C-z")) ; Stops C-z from minimizing window +(global-set-key (kbd "M-0") (lambda () (interactive) (modify-frame-parameters nil '((alpha . 100))))) ; M-0 standard visibility +(global-set-key (kbd "") 'myemacs/toggle-fullscreen) ; F11 FullScreen +(global-set-key (kbd "s-C-+") 'sacha/increase-font-size) ; C-+ increase font size +(global-set-key (kbd "s-C--") 'sacha/decrease-font-size) ; C-- decrease font size +(global-set-key (kbd "") 'revert-buffer-no-confirm) +(global-set-key (kbd "s-h") 'global-hl-line-mode) ; Highlight current line + + +;;---------------------------------------------------------------------------- +;; clock +;;---------------------------------------------------------------------------- + +(setq display-time-day-and-date t) +(display-time) + +(provide 'init-gui) + +;; End: +;;; init-gui.el ends here diff --git a/modules/init-html.el b/modules/init-html.el new file mode 100644 index 0000000..45e1131 --- /dev/null +++ b/modules/init-html.el @@ -0,0 +1,24 @@ +;;; init-html.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: + +;;;;;;;;;;;;;;;;;;;;;;;;; +;; HTML Mode +;;;;;;;;;;;;;;;;;;;;;;;;; + +(add-hook 'html-mode-hook + (lambda () + ;; Default indentation is usually 2 spaces, changing to 4. + (set (make-local-variable 'sgml-basic-offset) 4))) + +;; highlight-indent-guides-mode +(add-hook 'html-mode-hook 'highlight-indent-guides-mode) + +(provide 'init-html) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-html.el ends here diff --git a/modules/init-icons.el b/modules/init-icons.el new file mode 100644 index 0000000..ff2d81f --- /dev/null +++ b/modules/init-icons.el @@ -0,0 +1,28 @@ +;;; init-icons.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: + +;;---------------------------------- +;; All-the-icons +;;---------------------------------- +(use-package all-the-icons) + +;;---------------------------------- +;; Fonts - connecting with neotree +;;--------------------------------- +(if (file-exists-p "~/.local/share/fonts/all-the-icons.ttf") + (message "the icons are installed :)") + (setq neotree-mode-hook 'all-the-icons-install-fonts) + ) + +;; fix performace +(setq inhibit-compacting-font-caches t) + +(provide 'init-icons) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-icons.el ends here diff --git a/modules/init-indent-guides.el b/modules/init-indent-guides.el new file mode 100644 index 0000000..ced3ad0 --- /dev/null +++ b/modules/init-indent-guides.el @@ -0,0 +1,18 @@ +;;; init-indent-guides.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: + +;; This minor mode highlights indentation levels via font-lock + +(use-package highlight-indent-guides + :config + (setq highlight-indent-guides-method 'character) + ;; Indent character samples: fill, column or character + (setq highlight-indent-guides-method 'character)) + +(provide 'init-indent-guides) + +;; End: +;;; init-indent-guides.el ends here diff --git a/modules/init-less.el b/modules/init-less.el new file mode 100644 index 0000000..5579f18 --- /dev/null +++ b/modules/init-less.el @@ -0,0 +1,15 @@ +;;; init-less.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; Less Mode +;;---------------------------------------------------------------------------- +(use-package less-css-mode + :mode ("\\.less\\'" . less-css-mode)) + +(provide 'init-less) + +;; End: +;;; init-less.el ends here diff --git a/modules/init-markdown.el b/modules/init-markdown.el new file mode 100644 index 0000000..b7032db --- /dev/null +++ b/modules/init-markdown.el @@ -0,0 +1,37 @@ +;;; init-markdown.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +(use-package markdown-mode + :mode (("\\.markdown\\'" . markdown-mode) + ("\\.md\\'" . markdown-mode)) + + :config + ;;---------------------------------------------------------------------------- + ;; Generated HTML 5 and UTF-8 with Markdown + ;;---------------------------------------------------------------------------- + (eval-after-load "markdown-mode" + '(defalias 'markdown-add-xhtml-header-and-footer 'as/markdown-add-xhtml-header-and-footer)) + + (defun as/markdown-add-xhtml-header-and-footer (title) + "Wrap XHTML header and footer with given TITLE around current buffer." + (goto-char (point-min)) + (insert "\n" + "\n" + "\n") + (insert title) + (insert "\n") + (insert "\n") + (when (> (length markdown-css-paths) 0) + (insert (mapconcat 'markdown-stylesheet-link-string markdown-css-paths "\n"))) + (insert "\n\n\n" + "\n\n") + (goto-char (point-max)) + (insert "\n" + "\n" + "\n"))) + +(provide 'init-markdown) + +;;; init-markdown.el ends here diff --git a/modules/init-modeline.el b/modules/init-modeline.el new file mode 100644 index 0000000..4444a09 --- /dev/null +++ b/modules/init-modeline.el @@ -0,0 +1,54 @@ +;;; init-modeline.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; Modeline configuration +;;---------------------------------------------------------------------------- + +(use-package smart-mode-line) +(use-package smart-mode-line-powerline-theme) +(use-package sml-modeline + :config + ;; Show number of occurrences when searching + (setq sml/theme 'powerline) + + (setq sml/no-confirm-load-theme t) + (setq sml/shorten-modes t) + ;; Show EOL mode + (setq sml/show-eol t) + ;; Show remote buffers + (setq sml/show-remote t) + + (sml/setup) + (add-to-list 'sml/replacer-regexp-list '("^~/Proyectos/git/" ":Git:") t) + (add-to-list 'sml/replacer-regexp-list '("^~/www/" ":www:") t) + + (sml-modeline-mode t)) +(use-package anzu + :config + (custom-set-variables + '(anzu-search-threshold 1000) + '(anzu-replace-threshold 1000) + '(anzu-deactivate-region t) + '(anzu-input-idle-delay 0.1) + '(anzu-replace-to-string-separator " => ")) + (global-anzu-mode +1) + (set-face-attribute 'anzu-mode-line nil + :foreground "yellow" :weight 'bold) + + (define-key isearch-mode-map [remap isearch-query-replace] #'anzu-isearch-query-replace) + (define-key isearch-mode-map [remap isearch-query-replace-regexp] #'anzu-isearch-query-replace-regexp) + + ;;---------------------------------------------------------------------------- + ;; Keyboard shortcuts in Anzu Mode + ;;---------------------------------------------------------------------------- + (global-set-key (kbd "M-%") 'anzu-query-replace) + (global-set-key (kbd "s-") 'anzu-query-replace)) + +(load-file "~/.emacs.d/modules/lib/myemacs.el") +(provide 'init-modeline) + +;; End: +;;; init-modeline.el ends here diff --git a/modules/init-neotree.el b/modules/init-neotree.el new file mode 100644 index 0000000..ff38aa8 --- /dev/null +++ b/modules/init-neotree.el @@ -0,0 +1,90 @@ +;;; init-neotree.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;----------------------------------- +;; Neotree - NerdTree for Vim +;;----------------------------------- + +(use-package shrink-path + :ensure t) + +(use-package neotree + :ensure t + :commands (neotree-show + neotree-hide + neotree-toggle + neotree-dir + neotree-find + neo-global--with-buffer + neo-global--window-exists-p) + :bind (([f8] . neotree-toggle) + (:map neotree-mode-map + ("" . neotree-change-root) + ("C" . neotree-change-root) + ("c" . neotree-create-node) + ("+" . neotree-create-node) + ("d" . neotree-delete-node) + ("r" . neotree-rename-node))) + :config + (setq neo-create-file-auto-open nil + neo-auto-indent-point nil + neo-autorefresh t + neo-smart-open t + neo-mode-line-type 'none + neo-window-width 25 + neo-show-updir-line nil + neo-theme (if (display-graphic-p) 'icons 'arrow) + neo-banner-message nil + neo-confirm-create-file #'off-p + neo-confirm-create-directory #'off-p + neo-show-hidden-files nil + neo-keymap-style 'concise + neo-hidden-regexp-list + '(;; vcs folders + "^\\.\\(git\\|hg\\|svn\\)$" + ;; compiled files + "\\.\\(pyc\\|o\\|elc\\|lock\\|css.map\\)$" + ;; generated files, caches or local pkgs + "^\\(node_modules\\|vendor\\|.\\(project\\|cask\\|yardoc\\|sass-cache\\)\\)$" + ;; org-mode folders + "^\\.\\(sync\\|export\\|attach\\)$" + "~$" + "^#.*#$")) + + (when (bound-and-true-p winner-mode) + (push neo-buffer-name winner-boring-buffers)) + + (defun shrink-root-entry (node) + "shrink-print pwd in neotree" + (insert (propertize (concat (shrink-path-dirs node) "\n") 'face `(:inherit (,neo-root-dir-face))))) + + (advice-add #'neo-buffer--insert-root-entry :override #'shrink-root-entry)) + +(defun neotree-project-dir-toggle () + "Open NeoTree using the project root, using find-file-in-project or the current buffer directory." + (interactive) + (let ((project-dir + (ignore-errors + ;;; Pick one: projectile or find-file-in-project + (projectile-project-root))) + (file-name (buffer-file-name)) + (neo-smart-open t)) + (if (and (fboundp 'neo-global--window-exists-p) + (neo-global--window-exists-p)) + (neotree-hide) + (progn + (neotree-show) + (if project-dir + (neotree-dir project-dir)) + (if file-name + (neotree-find file-name)))))) + + +(provide 'init-neotree) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-neotree.el ends here diff --git a/modules/init-nginx.el b/modules/init-nginx.el new file mode 100644 index 0000000..bc8cdad --- /dev/null +++ b/modules/init-nginx.el @@ -0,0 +1,15 @@ +;;; init-nginx.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;--------------------------- +;; Nginx Mode +;;--------------------------- +(use-package nginx-mode + :mode ("/nginx/sites-\\(?:available\\|enabled\\)/" . nginx-mode)) + +(provide 'init-nginx) + +;; End: +;;; init-nginx.el ends here diff --git a/modules/init-nlinum.el b/modules/init-nlinum.el new file mode 100644 index 0000000..be26193 --- /dev/null +++ b/modules/init-nlinum.el @@ -0,0 +1,106 @@ +;;; init-nlinum.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; Line numbers +;;---------------------------------------------------------------------------- +;; Linum snippets from: https://www.emacswiki.org/emacs/LineNumbers +(use-package nlinum + :config + (add-hook 'find-file-hook (lambda () (linum-mode 1))) + (linum-mode) + (setq global-linum-mode t)) + +(use-package linum) +(use-package hl-line) + +(defface my-linum-hl + `((t :inherit linum :background ,(face-background 'hl-line nil t))) + "Face for the current line number." + :group 'linum) +(add-hook 'linum-before-numbering-hook 'my-linum-get-format-string) + +(defun my-linum-get-format-string () + "Format the string of the column in the buffer. +It helps to show the numbering plus a separation bar." + (let* ((width (1+ (length (number-to-string + (count-lines (point-min) (point-max)))))) + (format (concat "%" (number-to-string width) "d \u2502"))) + (setq my-linum-format-string format))) + +(defvar my-linum-current-line-number 0) + +(defun my-linum-format (line-number) + "Defines LINE-NUMBER the numbering format of each. +this helps maintain the format in the numbering" + (propertize (format my-linum-format-string line-number) 'face + (if (eq line-number my-linum-current-line-number) + 'my-linum-hl + 'linum))) +(setq linum-format 'my-linum-format) + +(defadvice linum-update (around my-linum-update) + "Defines LINUM-UPDATE for update lines. +this helps maintain the format in the numbering" + (let ((my-linum-current-line-number (line-number-at-pos))) + ad-do-it)) +(ad-activate 'linum-update) + +(defvar *linum-mdown-line* nil) + +(defun line-at-click () + "Funtions for position lines. +this helps maintain the move visual." + (save-excursion + (let ((click-y (cdr (cdr (mouse-position)))) + (line-move-visual-store line-move-visual)) + (setq line-move-visual t) + (goto-char (window-start)) + + (with-no-warnings + (next-line (1- click-y))) + + (setq line-move-visual line-move-visual-store) + ;; If you are using tabbar substitute the next line with + ;; (line-number-at-pos)))) + (1+ (line-number-at-pos))))) + +(defun md-select-linum () + "Funtions for position lines. +this helps maintain the move visual." + (interactive) + (with-no-warnings + (goto-line (line-at-click))) + (set-mark (point)) + (setq *linum-mdown-line* + (line-number-at-pos))) + +(defun mu-select-linum () + "Funtions for position lines. +this helps maintain the move visual." + (interactive) + (when *linum-mdown-line* + (let (mu-line) + ;; (goto-line (line-at-click)) + (setq mu-line (line-at-click)) + (with-no-warnings + (goto-line (max *linum-mdown-line* mu-line))) + + (set-mark (line-end-position)) + (with-no-warnings + (goto-line (min *linum-mdown-line* mu-line))) + (setq *linum-mdown* + nil)))) + +(global-set-key (kbd " ") 'md-select-linum) +(global-set-key (kbd " ") 'mu-select-linum) +(global-set-key (kbd " ") 'mu-select-linum) + +(provide 'init-nlinum) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-nlinum.el ends here diff --git a/modules/init-php.el b/modules/init-php.el new file mode 100644 index 0000000..b81e5b8 --- /dev/null +++ b/modules/init-php.el @@ -0,0 +1,29 @@ +;;; init-php.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +(use-package php-refactor-mode + :after (php-mode) + :mode ("\\.php\\'" . php-mode) + :config + (add-hook 'php-mode-hook 'php-refactor-mode)) + +(use-package php-mode + :ensure t) + +(use-package company-php + :ensure t + :config + (defun cfg:php-mode-hook () + (interactive) + (require 'company-php) + (company-mode t) + (add-to-list 'company-backends 'company-ac-php-backend)) + + (add-hook 'php-mode-hook 'cfg:php-mode-hook)) + +(add-hook 'php-mode-hook (lambda () (subword-mode 1))) + +(provide 'init-php) +;;; init-php.el ends here diff --git a/modules/init-pkgbuild.el b/modules/init-pkgbuild.el new file mode 100644 index 0000000..427e442 --- /dev/null +++ b/modules/init-pkgbuild.el @@ -0,0 +1,10 @@ +;;; init-pkgbuild.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +(use-package pkgbuild-mode + :mode ("/PKGBUILD$" . pkgbuild-mode)) + +(provide 'init-pkgbuild) +;;; init-pkgbuild.el ends here diff --git a/modules/init-python.el b/modules/init-python.el new file mode 100644 index 0000000..cbce258 --- /dev/null +++ b/modules/init-python.el @@ -0,0 +1,43 @@ +;;; init-python.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; Python Mode +;;---------------------------------------------------------------------------- +(add-hook 'python-mode-hook + (lambda () + (setq indent-tabs-mode nil) + (setq python-indent-guess-indent-offset nil) + (setq python-indent-offset 4))) + + +;;---------------------------------------------------------------------------- +;; Jedi - Python auto-completion for Emacs +;;---------------------------------------------------------------------------- +(use-package jedi) +(setq auto-mode-alist + (append '(("SConstruct\\'" . python-mode) + ("SConscript\\'" . python-mode)) + auto-mode-alist)) + +(use-package pip-requirements) +(defun my/python-mode-stuff () + "Jedi make everything a lot easier for everybody!. +It's helps prepare jedi in Emacs." + (jedi:setup) + (define-key python-mode-map (kbd "C-]") 'jedi:goto-definition) ;goto define + (local-set-key (kbd "") 'jedi:show-doc) + (setq jedi:complete-on-dot t) ; optional + ) +;; Added Jedi-mode to python-mode +(add-hook 'python-mode-hook 'my/python-mode-stuff) +;; M-x jedi:install-server + +(provide 'init-python) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-python.el ends here diff --git a/modules/init-rainbow.el b/modules/init-rainbow.el new file mode 100644 index 0000000..52db71e --- /dev/null +++ b/modules/init-rainbow.el @@ -0,0 +1,17 @@ +;;; init-rainbow.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;; rainbow-mode +(use-package rainbow-mode + :init + (add-hook 'css-mode-hook 'rainbow-mode) + (add-hook 'sass-mode-hook 'rainbow-mode) + (add-hook 'scss-mode-hook 'rainbow-mode) + (add-hook 'less-mode-hook 'rainbow-mode) + (add-hook 'web-mode-hook 'rainbow-mode) + (add-hook 'html-mode-hook 'rainbow-mode)) + +(provide 'init-rainbow) +;;; init-rainbow.el ends here diff --git a/modules/init-ready.el b/modules/init-ready.el new file mode 100644 index 0000000..dba8a0f --- /dev/null +++ b/modules/init-ready.el @@ -0,0 +1,18 @@ +;;; init-ready.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;------------------------- +;; Emacs Ready :) +;;------------------------- +(add-hook 'emacs-startup-hook + (lambda () + (message "Emacs ready in %s with %d garbage collections." + (format "%.2f seconds" + (float-time + (time-subtract after-init-time before-init-time))) + gcs-done))) + +(provide 'init-ready) +;;; init-ready.el ends here diff --git a/modules/init-sass.el b/modules/init-sass.el new file mode 100644 index 0000000..cd9c878 --- /dev/null +++ b/modules/init-sass.el @@ -0,0 +1,14 @@ +;;; init-sass.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; Sass Mode +;;---------------------------------------------------------------------------- +(use-package sass-mode + :mode ("\\.sass\\'" . sass-mode)) + +(provide 'init-sass) + +;;; init-sass.el ends here diff --git a/modules/init-scss.el b/modules/init-scss.el new file mode 100644 index 0000000..76cb770 --- /dev/null +++ b/modules/init-scss.el @@ -0,0 +1,14 @@ +;;; init-scss.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; Scss Mode +;;---------------------------------------------------------------------------- +(use-package scss-mode + :mode ("\\.scss\\'" . scss-mode)) + +(provide 'init-scss) + +;;; init-scss.el ends here diff --git a/modules/init-security.el b/modules/init-security.el new file mode 100644 index 0000000..68b1eb6 --- /dev/null +++ b/modules/init-security.el @@ -0,0 +1,22 @@ +;;; init-security.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;--------------------------------------------------------------------------------------------- +;; Security. Check https://web.archive.org/web/20170413150436/https://ogbe.net/emacsconfig.html +;;--------------------------------------------------------------------------------------------- +(setq tls-checktrust t) +(setq gnutls-verify-error t) +(let ((trustfile "/etc/ssl/cert.pem")) + (setq tls-program + `(,(format "gnutls-cli --x509cafile %s -p %%p %%h" trustfile) + ,(format "openssl s_client -connect %%h:%%p -CAfile %s -no_ssl2 -ign_eof" trustfile))) + (setq gnutls-trustfiles (list trustfile))) + +(provide 'init-security) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; init-security.el ends here diff --git a/modules/init-theme.el b/modules/init-theme.el new file mode 100644 index 0000000..379b294 --- /dev/null +++ b/modules/init-theme.el @@ -0,0 +1,17 @@ +;;; init-theme.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +(use-package sublime-themes + :config + (load-theme 'spolsky t) + ;; Fix linum current-line highlight. Doesn't looks good with this theme + (defface my-linum-hl + '((t :background "gray30" :foreground "gold")) + "Face for the currently active Line number" + :group 'linum)) + +(provide 'init-theme) + +;;; init-theme.el ends here diff --git a/modules/init-utils.el b/modules/init-utils.el new file mode 100644 index 0000000..ffcdd9f --- /dev/null +++ b/modules/init-utils.el @@ -0,0 +1,31 @@ +;;; init-utils.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;; Loads functions from libs +(defun load-directory (dir) + "Load functions from the libs DIR. +read the .el files" + (let ((load-it (lambda (f) + (load-file (concat (file-name-as-directory dir) f))) + )) + (mapc load-it (directory-files dir nil "\\.el$")))) + +;; Load lib functions +(load-directory (expand-file-name "~/.emacs.d/modules/lib/" user-emacs-directory)) + +;; This is borrowed from https://github.com/purcell/emacs.d/blob/master/lisp/init-utils.el by Steve Purcell but I have added some stuff. +(if (fboundp 'with-eval-after-load) + (defalias 'after-load 'with-eval-after-load) + (defmacro after-load (feature &rest body) + "After FEATURE is loaded, evaluate BODY." + (declare (indent defun)) + `(eval-after-load, feature + '(progn ,@body)))) + +;; Elapsed time +(load-file "~/.emacs.d/modules/lib/myemacs.el") + +(provide 'init-utils) +;;; init-utils.el ends here diff --git a/modules/init-web-mode.el b/modules/init-web-mode.el new file mode 100644 index 0000000..ae3be70 --- /dev/null +++ b/modules/init-web-mode.el @@ -0,0 +1,20 @@ +;;; init-web-mode.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +(use-package web-mode + :mode (("\\.html?\\'" . web-mode) + ("\\.djhtml\\'" . web-mode) + ("\\.tpl\\'" . web-mode) + ("\\.jsp\\'" . web-mode) + ("\\.gsp\\'" . web-mode) + ("\\.ctp\\'" . web-mode)) + :config + ;; web-modeの設定 + (setq web-mode-enable-current-element-highlight t) + (set-face-background 'web-mode-current-element-highlight-face "#a3a3a3") + ) + +(provide 'init-web-mode) +;;; init-web-mode.el ends here diff --git a/modules/init-whitespace.el b/modules/init-whitespace.el new file mode 100644 index 0000000..573dbb9 --- /dev/null +++ b/modules/init-whitespace.el @@ -0,0 +1,12 @@ +;;; init-whitespace.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;;---------------------------------------------------------------------------- +;; Whitespace Mode | tool +;;---------------------------------------------------------------------------- +(use-package whitespace-cleanup-mode) + +(provide 'init-whitespace) +;;; init-whitespace.el ends here diff --git a/modules/init-yaml.el b/modules/init-yaml.el new file mode 100644 index 0000000..47c533c --- /dev/null +++ b/modules/init-yaml.el @@ -0,0 +1,11 @@ +;;; init-yaml.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;; + +;;; Code: +;; yaml-mode +(use-package yaml-mode + :mode ("\\.yml\\'" . yaml-mode)) + +(provide 'init-yaml) +;;; init-yaml.el ends here diff --git a/modules/lib/myemacs.el b/modules/lib/myemacs.el new file mode 100644 index 0000000..1800e97 --- /dev/null +++ b/modules/lib/myemacs.el @@ -0,0 +1,37 @@ +;;; myemacs.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: +;;; myemacs reloj + +;;; Code: +;;---------------------------------------------------------------------------- +;; Some cool functions +;;---------------------------------------------------------------------------- +;; These functions are made by me (Quitter: @heckyel) or +;; heavily modified by me + +;;---------------------------------------------------------------------------- +;; Toggles fullscreen +;;---------------------------------------------------------------------------- +(defun myemacs/toggle-fullscreen () + "Return a message string if the current doc string is invalid." + (interactive) + (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 + '(2 "_NET_WM_STATE_FULLSCREEN" 0))) + +;;---------------------------------------------------------------------------- +;; Runtime Emacs +;;---------------------------------------------------------------------------- +(defun elapsed-time () + "Return a message string if the current doc string is invalid. +Emacs runtime: See the following URL for more details. +https://emacs.stackexchange.com/questions/13535/function-to-get-init-el-file-loading-times-multiple-times?rq=1" + (let ((elapsed (float-time (time-subtract (current-time) + emacs-start-time)))) + (message "[STARTUP] Loading %s ... done (%.3fs)" load-file-name elapsed))) + +(provide 'myemacs) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; myemacs.el ends here diff --git a/modules/lib/sachachua.el b/modules/lib/sachachua.el new file mode 100644 index 0000000..c862223 --- /dev/null +++ b/modules/lib/sachachua.el @@ -0,0 +1,39 @@ +;; Increase-decrease functions from Sacha Chua +(defun sacha/increase-font-size () + (interactive) + (set-face-attribute 'default + nil + :height + (ceiling (* 1.10 + (face-attribute 'default :height))))) +(defun sacha/decrease-font-size () + (interactive) + (set-face-attribute 'default + nil + :height + (floor (* 0.9 + (face-attribute 'default :height))))) + +;; Not original from Sacha. Taken from: http://emacsredux.com/blog/2013/05/22/smarter-navigation-to-the-beginning-of-a-line/ +(defun sacha/smarter-move-beginning-of-line (arg) + "Move point back to indentation of beginning of line. + +Move point to the first non-whitespace character on this line. +If point is already there, move to the beginning of the line. +Effectively toggle between the first non-whitespace character and +the beginning of the line. + +If ARG is not nil or 1, move forward ARG - 1 lines first. If +point reaches the beginning or end of the buffer, stop there." + (interactive "^p") + (setq arg (or arg 1)) + + ;; Move lines first + (when (/= arg 1) + (let ((line-move-visual nil)) + (forward-line (1- arg)))) + + (let ((orig-point (point))) + (back-to-indentation) + (when (= orig-point (point)) + (move-beginning-of-line 1)))) diff --git a/settings.el b/settings.el index 8e0bce3..70f9cc1 100644 --- a/settings.el +++ b/settings.el @@ -1,5 +1,11 @@ -;; Garbage collection threshold -(setq local/gc-cons-threshold (* 512 1024 1024)) +;;; settings.el --- .Emacs Configuration -*- lexical-binding: t -*- +;;; Commentary: + +;;; Code: + +;; Make startup faster by reducing the frequency of garbage +;; collection. The default is 800 kilobytes. Measured in bytes. +(setq local/gc-cons-threshold (* 50 1000 1000)) (setq user-full-name "Jesús E.") (setq user-mail-address "heckyel@hyperbola.info") @@ -7,3 +13,8 @@ (setq large-file-warning-threshold (* 15 1024 1024)) (prefer-coding-system 'utf-8) (setq-default buffer-file-coding-system 'utf-8-auto-unix) + +;; Local Variables: +;; byte-compile-warnings: (not free-vars) +;; End: +;;; settings.el ends here -- cgit v1.2.3