From f453b3cee16d796f705f291de183f662363b1dd3 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 16 Jan 2017 23:19:10 -0500 Subject: [PATCH] Reorganize modules --- modules/custom-debug.el => core/core-debug.el | 0 modules/custom-tags.el => core/core-jump.el | 0 modules/README.md | 0 modules/{custom-db.el => apps/db/config.el} | 0 .../present/config.el} | 0 .../{custom-write.el => apps/write/config.el} | 0 modules/defuns/defuns-cc.el | 142 ------ modules/defuns/defuns-css.el | 224 ---------- modules/defuns/defuns-elisp.el | 63 --- modules/defuns/defuns-eshell.el | 140 ------ modules/defuns/defuns-go.el | 18 - modules/defuns/defuns-java.el | 35 -- modules/defuns/defuns-julia.el | 15 - modules/defuns/defuns-lua.el | 10 - modules/defuns/defuns-markdown.el | 24 - modules/defuns/defuns-org.el | 415 ------------------ modules/defuns/defuns-python.el | 15 - modules/defuns/defuns-quickrun.el | 97 ---- modules/defuns/defuns-realgud.el | 73 --- modules/defuns/defuns-regex.el | 40 -- modules/defuns/defuns-sh.el | 50 --- modules/defuns/defuns-text.el | 11 - modules/defuns/defuns-typescript.el | 73 --- modules/defuns/defuns-web.el | 45 -- modules/defuns/macros-org.el | 45 -- .../eshell/config.el} | 0 .../{module-org.el => emacs/org/config.el} | 0 modules/{module-asm.el => lang/asm/config.el} | 0 modules/{module-cc.el => lang/cc/config.el} | 0 .../crystal/config.el} | 0 .../csharp/config.el} | 0 modules/{module-css.el => lang/css/config.el} | 0 .../{module-data.el => lang/data/config.el} | 0 .../emacs-lisp/config.el} | 0 modules/{module-go.el => lang/go/config.el} | 0 .../haskell/config.el} | 0 .../{module-java.el => lang/java/config.el} | 0 .../javascript/+screeps.el} | 0 .../javascript/config.el} | 0 .../{module-julia.el => lang/julia/config.el} | 0 .../{module-latex.el => lang/latex/config.el} | 0 modules/{module-lua.el => lang/lua/config.el} | 0 .../octave/config.el} | 0 modules/{module-php.el => lang/php/config.el} | 0 .../processing/config.el} | 0 .../python/config.el} | 0 .../{module-ruby.el => lang/ruby/config.el} | 0 .../{module-rust.el => lang/rust/config.el} | 0 .../{module-scala.el => lang/scala/config.el} | 0 modules/{module-sh.el => lang/sh/config.el} | 0 .../{module-swift.el => lang/swift/config.el} | 0 .../{module-text.el => lang/text/config.el} | 0 modules/{module-web.el => lang/web/config.el} | 0 .../{module-rest.el => lib/rest/autoload.el} | 0 .../{custom-tmux.el => lib/tmux/autoload.el} | 0 55 files changed, 1535 deletions(-) rename modules/custom-debug.el => core/core-debug.el (100%) rename modules/custom-tags.el => core/core-jump.el (100%) create mode 100644 modules/README.md rename modules/{custom-db.el => apps/db/config.el} (100%) rename modules/{custom-demo.el => apps/present/config.el} (100%) rename modules/{custom-write.el => apps/write/config.el} (100%) delete mode 100644 modules/defuns/defuns-cc.el delete mode 100644 modules/defuns/defuns-css.el delete mode 100644 modules/defuns/defuns-elisp.el delete mode 100644 modules/defuns/defuns-eshell.el delete mode 100644 modules/defuns/defuns-go.el delete mode 100644 modules/defuns/defuns-java.el delete mode 100644 modules/defuns/defuns-julia.el delete mode 100644 modules/defuns/defuns-lua.el delete mode 100644 modules/defuns/defuns-markdown.el delete mode 100644 modules/defuns/defuns-org.el delete mode 100644 modules/defuns/defuns-python.el delete mode 100644 modules/defuns/defuns-quickrun.el delete mode 100644 modules/defuns/defuns-realgud.el delete mode 100644 modules/defuns/defuns-regex.el delete mode 100644 modules/defuns/defuns-sh.el delete mode 100644 modules/defuns/defuns-text.el delete mode 100644 modules/defuns/defuns-typescript.el delete mode 100644 modules/defuns/defuns-web.el delete mode 100644 modules/defuns/macros-org.el rename modules/{module-eshell.el => emacs/eshell/config.el} (100%) rename modules/{module-org.el => emacs/org/config.el} (100%) rename modules/{module-asm.el => lang/asm/config.el} (100%) rename modules/{module-cc.el => lang/cc/config.el} (100%) rename modules/{module-crystal.el => lang/crystal/config.el} (100%) rename modules/{module-csharp.el => lang/csharp/config.el} (100%) rename modules/{module-css.el => lang/css/config.el} (100%) rename modules/{module-data.el => lang/data/config.el} (100%) rename modules/{module-elisp.el => lang/emacs-lisp/config.el} (100%) rename modules/{module-go.el => lang/go/config.el} (100%) rename modules/{module-haskell.el => lang/haskell/config.el} (100%) rename modules/{module-java.el => lang/java/config.el} (100%) rename modules/{custom-screeps.el => lang/javascript/+screeps.el} (100%) rename modules/{module-js.el => lang/javascript/config.el} (100%) rename modules/{module-julia.el => lang/julia/config.el} (100%) rename modules/{module-latex.el => lang/latex/config.el} (100%) rename modules/{module-lua.el => lang/lua/config.el} (100%) rename modules/{module-octave.el => lang/octave/config.el} (100%) rename modules/{module-php.el => lang/php/config.el} (100%) rename modules/{module-processing.el => lang/processing/config.el} (100%) rename modules/{module-python.el => lang/python/config.el} (100%) rename modules/{module-ruby.el => lang/ruby/config.el} (100%) rename modules/{module-rust.el => lang/rust/config.el} (100%) rename modules/{module-scala.el => lang/scala/config.el} (100%) rename modules/{module-sh.el => lang/sh/config.el} (100%) rename modules/{module-swift.el => lang/swift/config.el} (100%) rename modules/{module-text.el => lang/text/config.el} (100%) rename modules/{module-web.el => lang/web/config.el} (100%) rename modules/{module-rest.el => lib/rest/autoload.el} (100%) rename modules/{custom-tmux.el => lib/tmux/autoload.el} (100%) diff --git a/modules/custom-debug.el b/core/core-debug.el similarity index 100% rename from modules/custom-debug.el rename to core/core-debug.el diff --git a/modules/custom-tags.el b/core/core-jump.el similarity index 100% rename from modules/custom-tags.el rename to core/core-jump.el diff --git a/modules/README.md b/modules/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/modules/custom-db.el b/modules/apps/db/config.el similarity index 100% rename from modules/custom-db.el rename to modules/apps/db/config.el diff --git a/modules/custom-demo.el b/modules/apps/present/config.el similarity index 100% rename from modules/custom-demo.el rename to modules/apps/present/config.el diff --git a/modules/custom-write.el b/modules/apps/write/config.el similarity index 100% rename from modules/custom-write.el rename to modules/apps/write/config.el diff --git a/modules/defuns/defuns-cc.el b/modules/defuns/defuns-cc.el deleted file mode 100644 index b355d9720..000000000 --- a/modules/defuns/defuns-cc.el +++ /dev/null @@ -1,142 +0,0 @@ -;;; defuns-cc.el --- for module-cc.el - -(defun doom--c-lineup-inclass (langelem) - (let ((inclass (assoc 'inclass c-syntactic-context))) - (save-excursion - (goto-char (c-langelem-pos inclass)) - (if (or (looking-at "struct") - (looking-at "typedef struct")) - '+ - '++)))) - -;;;###autoload -(defun doom/c-lineup-arglist (orig-fun &rest args) - "Improve indentation of continued C++11 lambda function opened as argument." - (if (and (eq major-mode 'c++-mode) - (ignore-errors - (save-excursion - (goto-char (c-langelem-pos langelem)) - ;; Detect "[...](" or "[...]{". preceded by "," or "(", - ;; and with unclosed brace. - (looking-at ".*[(,][ \t]*\\[[^]]*\\][ \t]*[({][^}]*$")))) - 0 ; no additional indent - (apply orig-fun args))) - -;;;###autoload -(defun doom|init-c/c++-settings () - (when (memq major-mode '(c-mode c++-mode objc-mode)) - (c-toggle-electric-state -1) - (c-toggle-auto-newline -1) - (c-set-offset 'substatement-open '0) ; brackets should be at same indentation level as the statements they open - (c-set-offset 'inline-open '+) - (c-set-offset 'block-open '+) - (c-set-offset 'brace-list-open '+) ; all "opens" should be indented by the c-indent-level - (c-set-offset 'case-label '+) ; indent case labels by c-indent-level, too - (c-set-offset 'access-label '-) - (c-set-offset 'inclass 'doom--c-lineup-inclass) - (c-set-offset 'arglist-intro '+) - (c-set-offset 'arglist-close '0) - ;; Certain mappings interfere with smartparens and custom bindings - (define-key c-mode-map (kbd "DEL") nil) - (define-key c-mode-base-map "#" 'self-insert-command) - (define-key c-mode-base-map "{" 'self-insert-command) - (define-key c-mode-base-map "}" 'self-insert-command) - (define-key c-mode-base-map "/" 'self-insert-command) - (define-key c-mode-base-map "*" 'self-insert-command) - (define-key c-mode-base-map ";" 'self-insert-command) - (define-key c-mode-base-map "," 'self-insert-command) - (define-key c-mode-base-map ":" 'self-insert-command) - (define-key c-mode-base-map "(" 'self-insert-command) - (define-key c-mode-base-map ")" 'self-insert-command) - - (define-key c++-mode-map "}" nil) - ;; FIXME: fix smartparens - ;; (define-key c++-mode-map ">" nil) - (map! :map (c-mode-base-map c++-mode-map) :i ">" 'doom/autoclose->-maybe) - (define-key c++-mode-map "<" nil))) - -;;;###autoload -(defun doom/autoclose->-maybe () - "For some reason smartparens won't autoskip >'s, this hack does." - (interactive) - (if (save-excursion - (backward-char) - (looking-at-p "[^ \t]>")) - (forward-char) - (call-interactively 'self-insert-command))) - -(defun doom--copy-face (new-face face) - "Define NEW-FACE from existing FACE." - (copy-face face new-face) - (eval `(defvar ,new-face nil)) - (set new-face new-face)) - -;;;###autoload -(defun doom|extra-fontify-c++ () - ;; We could place some regexes into `c-mode-common-hook', but - ;; note that their evaluation order matters. - ;; NOTE modern-cpp-font-lock will eventually supercede some of these rules - (font-lock-add-keywords - nil '(;; c++11 string literals - ;; L"wide string" - ;; L"wide string with UNICODE codepoint: \u2018" - ;; u8"UTF-8 string", u"UTF-16 string", U"UTF-32 string" - ("\\<\\([LuU8]+\\)\".*?\"" 1 font-lock-keyword-face) - ;; R"(user-defined literal)" - ;; R"( a "quot'd" string )" - ;; R"delimiter(The String Data" )delimiter" - ;; R"delimiter((a-z))delimiter" is equivalent to "(a-z)" - ("\\(\\<[uU8]*R\"[^\\s-\\\\()]\\{0,16\\}(\\)" 1 font-lock-keyword-face t) ; start delimiter - ( "\\<[uU8]*R\"[^\\s-\\\\()]\\{0,16\\}(\\(.*?\\))[^\\s-\\\\()]\\{0,16\\}\"" 1 font-lock-string-face t) ; actual string - ( "\\<[uU8]*R\"[^\\s-\\\\()]\\{0,16\\}(.*?\\()[^\\s-\\\\()]\\{0,16\\}\"\\)" 1 font-lock-keyword-face t) ; end delimiter - ) t)) - -;;;###autoload -(defun doom|extra-fontify-c/c++ () - (font-lock-add-keywords - nil '(;; PREPROCESSOR_CONSTANT, PREPROCESSORCONSTANT - ("\\<[A-Z]*_[A-Z_]+\\>" . font-lock-constant-face) - ("\\<[A-Z]\\{3,\\}\\>" . font-lock-constant-face) - ;; integer/float/scientific numbers - ("\\<\\([\\-+]*[0-9\\.]+\\)\\>" 1 font-lock-constant-face t) - ("\\<\\([\\-+]*[0-9\\.]+\\)\\(f\\)\\>" - (1 font-lock-constant-face t) - (2 font-lock-keyword-face t)) - ("\\<\\([\\-+]*[0-9\\.]+\\)\\([eE]\\)\\([\\-+]?[0-9]+\\)\\>" - (1 font-lock-constant-face t) - (2 font-lock-keyword-face t) - (3 font-lock-constant-face t)) - ) t)) - -;;;###autoload -(defun doom/append-semicolon () - "Append a semicolon to the end of this (or each selected) non-empty line." - (interactive) - (let ((beg (if (evil-visual-state-p) evil-visual-beginning (line-beginning-position))) - (end (if (evil-visual-state-p) evil-visual-end (line-end-position)))) - (save-excursion - (goto-char beg) - (while (< (point) end) - (let ((lend (save-excursion (evil-last-non-blank) (point)))) - (goto-char (1+ lend)) - (unless (or (eq (char-before) ?\;) - (= lend (line-beginning-position))) - (insert ";"))) - (forward-line))) - (when (evil-visual-state-p) - (evil-normal-state)))) - -;;;###autoload -(defun doom/sp-point-is-template-p (id action context) - (and (sp-in-code-p id action context) - (sp-point-after-word-p id action context))) - -;;;###autoload -(defun doom/sp-point-after-include-p (id action context) - (and (sp-in-code-p id action context) - (save-excursion - (goto-char (line-beginning-position)) - (looking-at-p "[ ]*#include[^<]+")))) - -(provide 'defuns-cc) -;;; defuns-cc.el ends here diff --git a/modules/defuns/defuns-css.el b/modules/defuns/defuns-css.el deleted file mode 100644 index 5746dfc2e..000000000 --- a/modules/defuns/defuns-css.el +++ /dev/null @@ -1,224 +0,0 @@ -;;; defuns-scss.el - -;;;###autoload -(defun doom/css-toggle-inline-or-block () - "Toggles between a SCSS multiline block and one-line block." - (interactive) - (save-excursion - (let* ((bounds (ignore-errors (evil-a-curly))) - beg end) - (unless bounds - (user-error "No block found")) - (setq beg (car bounds) - end (cadr bounds)) - (if (= (line-number-at-pos beg) (line-number-at-pos end)) - (save-excursion - (goto-char (1+ beg)) (insert "\n") - (unless (string-match ";[\s\t]*}$" (buffer-substring-no-properties beg (1+ end))) - (goto-char end) (insert "\n")) - (replace-regexp ";[\s\t]*" ";\n" nil beg (1+ end)) - (setq end (cadr (evil-a-curly))) - (evil-indent beg end) - (delete-trailing-whitespace beg end)) - (goto-char beg) - (evil-join beg end) - (goto-char (1+ beg)) - (just-one-space) - (goto-char (cadr (evil-inner-curly))) - (just-one-space))))) - -;;;###autoload -(defalias 'doom/sass-build 'doom/scss-build) - -;;;###autoload -(defun doom/scss-build () - "Compile all sass/scss files in project" - (interactive) - (if (bound-and-true-p gulpjs-project-mode) - (let ((default-directory (doom/project-root))) - (compile "gulp sass")) - (let ((scss-dir (f-slash (or (f-traverse-upwards (lambda (d) - (string-match-p "/\\(\\(s[ca]\\|c\\)ss\\|styles\\)/?$" d)) - default-directory) - default-directory)))) - (compile (format "%s %s --update '%s':'%s'" - scss-sass-command - (mapconcat 'identity scss-sass-options " ") - scss-dir - (or scss-output-directory - (awhen (f-traverse-upwards (lambda (d) - (f-dir? (format "%s/css" d))) - default-directory) - (format "%s/css" it)) - ".")))))) - -(defface doom/counsel-css-selector-depth-face-1 - '((((class color) (background dark)) (:foreground "#ffff00")) - (((class color) (background light)) (:foreground "#0000ff")) - (t (:foreground "#ffff00"))) - "Selector depth 1") -(defface doom/counsel-css-selector-depth-face-2 - '((((class color) (background dark)) (:foreground "#ffdd00")) - (((class color) (background light)) (:foreground "#3300ff")) - (t (:foreground "#ffdd00"))) - "Selector depth 2") -(defface doom/counsel-css-selector-depth-face-3 - '((((class color) (background dark)) (:foreground "#ffbb00")) - (((class color) (background light)) (:foreground "#6600ff")) - (t (:foreground "#ffbb00"))) - "Selector depth 3") -(defface doom/counsel-css-selector-depth-face-4 - '((((class color) (background dark)) (:foreground "#ff9900")) - (((class color) (background light)) (:foreground "#9900ff")) - (t (:foreground "#ff9900"))) - "Selector depth 4") -(defface doom/counsel-css-selector-depth-face-5 - '((((class color) (background dark)) (:foreground "#ff7700")) - (((class color) (background light)) (:foreground "#cc00ff")) - (t (:foreground "#ff7700"))) - "Selector depth 5") -(defface doom/counsel-css-selector-depth-face-6 - '((((class color) (background dark)) (:foreground "#ff5500")) - (((class color) (background light)) (:foreground "#ff00ff")) - (t (:foreground "#ff5500"))) - "Selector depth 6") - -(cl-defun doom/counsel-css--open-brace-forward (&optional $bound) - "Move to next open brace, skip commented brace" - (interactive) - (let ($ret) - (setq $ret (re-search-forward "[^#]{" $bound t)) - (unless $ret (cl-return-from doom/counsel-css--open-brace-forward nil)) - (backward-char) - (if (doom/counsel-css--comment-p (point)) - (doom/counsel-css--open-brace-forward $bound) - $ret))) - -(defun doom/counsel-css--substr-last-string ($text $key) - "Return the tail of $text without $key strings" - (while (string-match $key $text) - (setq $text (substring $text (1+ (string-match $key $text))))) - $text) - -(cl-defun doom/counsel-css--fetch-previous-line (&optional $prev $noexcursion) - "Return previous nth ($prev) line strings. -If $noexcursion is not-nil cursor doesn't move." - ;; In compressed Css without this return, it takes long time - (if (eq 1 (line-number-at-pos)) - (cl-return-from doom/counsel-css--fetch-previous-line "")) - (or $prev (setq $prev 1)) - (if $noexcursion (setq $noexcursion (point))) - (move-beginning-of-line (- 1 $prev)) - (let (($po (point)) $res) - (move-end-of-line 1) - (setq $res (buffer-substring-no-properties $po (point))) - (if $noexcursion (goto-char $noexcursion)) - $res)) - -(defun doom/counsel-css--comment-p (&optional $pos) - (or $pos (setq $pos (point))) - (nth 4 (parse-partial-sexp (point-min) $pos))) - -(cl-defun doom/counsel-css--extract-selector () - "Return selector infomation at the point" - (let (($multi "") $s $po1 $po2 $po3 $str $commentp) - ;; Collect multiple selector across previous lines - ;; (i.e. "div, \n p, \n span {...}") - (save-excursion - (while (string-match ",[\s\t]*$" - (setq $s (doom/counsel-css--fetch-previous-line))) - ;; Skip commented selector (i.e. " // .blue,") - (save-excursion - (move-beginning-of-line 1) - (setq $po3 (point)) - (setq $commentp (doom/counsel-css--comment-p (search-forward ",")))) - (unless $commentp - (setq $multi (format "%s %s" (string-trim $s) $multi))))) - ;; Extract selector include one-line-nesting (i.e. "div { p {...} }") - (save-excursion - (skip-chars-backward "^{};\n") - (setq $po1 (point)) - ;; (setq $beg2 $po1) - (skip-chars-forward "^{") - (setq $po2 (point)) - (setq $str (buffer-substring-no-properties $po1 $po2)) - ;; i.e. "div { .box { p" -> " p" - (setq $str (doom/counsel-css--substr-last-string $str "{\\|}")) - (setq $str (string-trim $str)) - ;; Return (selector-name . (selector-beginning-point . selector-end-point)) - (if (equal $multi "") - (cons (format "%s" $str) (cons $po1 $po2)) - (cons (format "%s %s" (string-trim $multi) $str) - (cons $po3 $po2)))))) - -(cl-defun doom/counsel-css--selector-next (&optional $bound) - "Return and goto next selector." - (unless (doom/counsel-css--open-brace-forward $bound) - (cl-return-from doom/counsel-css--selector-next nil)) - (doom/counsel-css--extract-selector)) - -(defun doom/counsel-css--selector-to-hash (&optional no-line-numbers) - "Collect all selectors and make hash table" - (let ($selector $paren-beg $paren-end $hash $dep $max $sl - $selector-name $selector-beg $selector-end - $selector-line) - (setq $hash (make-hash-table :test 'equal)) - (save-excursion - (goto-char (point-min)) - (while (setq $selector (doom/counsel-css--selector-next)) - (setq $paren-beg (point)) - (setq $paren-end (scan-sexps $paren-beg 1)) - (setq $max (cons $paren-end $max)) - (setq $max (mapcar (lambda ($p) (if (< $p $paren-beg) nil $p)) $max)) - (setq $max (delq nil $max)) - (setq $dep (length $max)) - (setq $selector-name (car $selector)) - (setq - $selector-name - (cl-case $dep - (1 (propertize $selector-name 'face 'doom/counsel-css-selector-depth-face-1)) - (2 (propertize $selector-name 'face 'doom/counsel-css-selector-depth-face-2)) - (3 (propertize $selector-name 'face 'doom/counsel-css-selector-depth-face-3)) - (4 (propertize $selector-name 'face 'doom/counsel-css-selector-depth-face-4)) - (5 (propertize $selector-name 'face 'doom/counsel-css-selector-depth-face-5)) - (6 (propertize $selector-name 'face 'doom/counsel-css-selector-depth-face-6)))) - (setq $selector-beg (cadr $selector)) - (setq $selector-end (cddr $selector)) - (setq $selector-line (line-number-at-pos $selector-beg)) - (if (<= $dep (length $sl)) - (cl-loop repeat (- (1+ (length $sl)) $dep) do (pop $sl))) - (setq $sl (cons $selector-name $sl)) - (puthash - (if no-line-numbers - (mapconcat 'identity (reverse $sl) " ") - (format "%s: %s" - (propertize (number-to-string $selector-line) - 'face 'font-lock-function-name-face) - (mapconcat 'identity (reverse $sl) " "))) - (list $paren-beg $paren-end $dep $selector-beg $selector-end $selector-line) - $hash))) - $hash)) - -(defun doom/counsel-css--imenu-create-index-function () - (let (($hash (doom/counsel-css--selector-to-hash t))) - (cl-loop for $k being hash-key in $hash using (hash-values $v) - collect (cons $k $v)))) - -;;;###autoload -(defun doom|counsel-css-imenu-setup () - (when (memq major-mode '(css-mode scss-mode less-css-mode)) - (setq imenu-create-index-function 'doom/counsel-css--imenu-create-index-function))) - -;;;###autoload -(defun doom/counsel-css () - (interactive) - (require 'counsel) - (ivy-read "Selectors: " - (let (($hash (doom/counsel-css--selector-to-hash))) - (cl-loop for $k being hash-key in $hash using (hash-values $v) - collect (cons $k $v))) - :require-match t - :caller 'doom/counsel-css)) - -(provide 'defuns-scss) -;;; defuns-scss.el ends here diff --git a/modules/defuns/defuns-elisp.el b/modules/defuns/defuns-elisp.el deleted file mode 100644 index b23d5cd06..000000000 --- a/modules/defuns/defuns-elisp.el +++ /dev/null @@ -1,63 +0,0 @@ -;;; defuns-elisp.el - -;;;###autoload (autoload 'doom:byte-compile "defuns-elisp" nil t) -(evil-define-command doom:byte-compile (&optional bang) - (interactive "") - (if bang (doom-byte-compile) (byte-compile-file buffer-file-name))) - -;;;###autoload -(defun doom/elisp-find-function-at-pt () - (interactive) - (let ((func (function-called-at-point))) - (if func (find-function func)))) - -;;;###autoload -(defun doom/elisp-find-function-at-pt-other-window () - (interactive) - (let ((func (function-called-at-point))) - (if func (find-function-other-window func)))) - -(defsubst doom--ert-pre () - (save-buffer) - (eval-buffer)) - -;;;###autoload -(defun doom/ert-run-test () - (interactive) - (let (case-fold-search thing) - (doom--ert-pre) - (setq thing (thing-at-point 'defun t)) - (if thing - (if (string-match "(ert-deftest \\([^ ]+\\)" thing) - (ert-run-tests-interactively - (substring thing (match-beginning 1) (match-end 1))) - (user-error "Invalid test at point")) - (user-error "No test found at point")))) - -;;;###autoload -(defun doom/ert-rerun-test () - (interactive) - (let (case-fold-search thing) - (doom--ert-pre) - (setq thing (car-safe ert--selector-history)) - (if thing - (ert-run-tests-interactively thing) - (message "No test found in history, looking for test at point") - (doom/ert-run-test)))) - -;;;###autoload -(defun doom/ert-run-all-tests () - (interactive) - (ert-delete-all-tests) - (doom--ert-pre) - (ert-run-tests-interactively t)) - -;;;###autoload -(defun doom/elisp-inf-ielm () - (ielm) - (let ((buf (current-buffer))) - (bury-buffer) - (pop-to-buffer buf))) - -(provide 'defuns-elisp) -;;; defuns-elisp.el ends here diff --git a/modules/defuns/defuns-eshell.el b/modules/defuns/defuns-eshell.el deleted file mode 100644 index 1ec2e5970..000000000 --- a/modules/defuns/defuns-eshell.el +++ /dev/null @@ -1,140 +0,0 @@ -;;; defuns-eshell.el - -(require 'eshell) - -(defvar doom-eshell-buffers '() "") - -;;;###autoload -(defun doom|eshell-cleanup () - (when (eq major-mode 'eshell-mode) - (setq doom-eshell-buffers (delete (current-buffer) doom-eshell-buffers)) - (cond ((doom/popup-p) - (delete-window)) - ((string= "eshell" (wg-workgroup-name (wg-current-workgroup t))) - (if (one-window-p) - (doom:workgroup-delete) - (delete-window)))))) - -;;;###autoload -(defun doom|eshell-init () - (when (eq major-mode 'eshell-mode) - (add-to-list 'doom-eshell-buffers (current-buffer)))) - -(defun doom--eshell-outside-prompt-p (&optional offset) - (< (point) eshell-last-output-end)) - -(defun doom--eshell-current-git-branch () - (let ((branch (car (loop for match in (split-string (shell-command-to-string "git branch") "\n") - when (string-match "^\*" match) - collect match)))) - (if (not (eq branch nil)) - (concat " [" (substring branch 2) "]") - ""))) - -;;;###autoload -(defun doom/eshell-split () - (interactive) - (select-window (split-window-vertically)) - (doom:eshell)) - -;;;###autoload -(defun doom/eshell-vsplit () - (interactive) - (select-window (split-window-horizontally)) - (doom:eshell)) - -;;;###autoload -(defun doom/eshell-prompt () - (concat (propertize (abbreviate-file-name (eshell/pwd)) 'face 'eshell-prompt) - (propertize (doom--eshell-current-git-branch) 'face 'font-lock-function-name-face) - (propertize " λ " 'face 'font-lock-constant-face))) - -;;;###autoload (autoload 'doom:eshell "defuns-eshell" nil t) -(evil-define-command doom:eshell (&optional bang) - "Create a shell in the current buffer. If BANG, use a popup buffer." - (interactive "") - (let ((buf (if bang - (get-buffer-create "*eshell:popup*") - (generate-new-buffer eshell-buffer-name)))) - (with-current-buffer buf - (unless (eq major-mode 'eshell-mode) (eshell-mode))) - (if bang - (doom/popup-buffer buf) - (pop-to-buffer-same-window buf)))) - -;;;###autoload -(defun doom/eshell-tab () - "Create a separate tab for the shell." - (interactive) - (unless (wg-switch-to-workgroup (wg-get-workgroup "eshell" t) t) - (doom:tab-create nil "eshell")) - (let ((buf (--find (string-match-p "^\\*eshell" (buffer-name (window-buffer it))) - (doom/get-visible-windows)))) - (if buf - (select-window (get-buffer-window buf)) - (doom:eshell)) - (doom/workgroup-display))) - -;;;###autoload -(defun doom/eshell-frame () - "Create a separate frame for the shell." - (interactive) - (doom/new-frame) - (doom:eshell)) - -;;;###autoload -(defun doom/eshell-evil-append () - (interactive) - (goto-char eshell-last-output-end) - (call-interactively 'evil-append-line)) - -;;;###autoload -(defun doom/eshell-evil-append-maybe () - (interactive) - (if (doom--eshell-outside-prompt-p) - (doom/eshell-evil-append) - (call-interactively 'evil-append))) - -;;;###autoload -(defun doom/eshell-evil-prepend () - (interactive) - (goto-char eshell-last-output-end) - (call-interactively 'evil-insert)) - -;;;###autoload -(defun doom/eshell-evil-prepend-maybe () - (interactive) - (if (doom--eshell-outside-prompt-p) - (doom/eshell-evil-prepend) - (call-interactively 'evil-insert))) - -;;;###autoload -(defun doom/eshell-evil-replace-maybe () - (interactive) - (if (doom--eshell-outside-prompt-p) - (user-error "Cannot edit read-only region") - (call-interactively 'evil-replace))) - -;;;###autoload -(defun doom/eshell-evil-replace-state-maybe () - (interactive) - (if (doom--eshell-outside-prompt-p) - (user-error "Cannot edit read-only region") - (call-interactively 'evil-replace-state))) - -;;;###autoload -(defun doom/eshell-evil-change () - (interactive) - (when (doom--eshell-outside-prompt-p) - (goto-char eshell-last-output-end)) - (call-interactively 'evil-change)) - -;;;###autoload -(defun doom/eshell-evil-change-line () - (interactive) - (when (doom--eshell-outside-prompt-p) - (goto-char eshell-last-output-end)) - (call-interactively 'evil-change-line)) - -(provide 'defuns-eshell) -;;; defuns-eshell.el ends here diff --git a/modules/defuns/defuns-go.el b/modules/defuns/defuns-go.el deleted file mode 100644 index d0f387a80..000000000 --- a/modules/defuns/defuns-go.el +++ /dev/null @@ -1,18 +0,0 @@ -;;; defuns-go.el - -;; TODO Implement doom:go-get-package -(defun doom--go-get-package ()) - -;;;###autoload -(defun doom:go-test-run-all () - (interactive) - (async-shell-command (format "cd '%s' && go test" (doom/project-root)))) - -;;;###autoload -(defun doom:go-test-run-package () - (interactive) - (error "Not yet implemented") - (async-shell-command (format "cd '%s' && go test %s" (doom/project-root) (doom--go-get-package)))) - -(provide 'defuns-go) -;;; defuns-go.el ends here diff --git a/modules/defuns/defuns-java.el b/modules/defuns/defuns-java.el deleted file mode 100644 index 474a7de30..000000000 --- a/modules/defuns/defuns-java.el +++ /dev/null @@ -1,35 +0,0 @@ -;;; defuns-java.el - -;; yasnippet defuns -;;;###autoload -(defun doom/java-android-mode-is-layout-file () - (and android-mode - (eq major-mode 'nxml-mode) - (string-equal (file-name-base (directory-file-name default-directory)) "layout"))) - -;;;###autoload -(defun doom/java-android-mode-in-tags (&rest tags) - (-contains? tags (android-mode-tag-name))) - -;;;###autoload -(defun doom/java-android-mode-tag-name () - (save-excursion - (let (beg end) - (nxml-backward-up-element) - (evil-forward-word-begin) - (setq beg (point)) - (evil-forward-WORD-end) - (setq end (1+ (point))) - (buffer-substring-no-properties beg end)))) - -;;;###autoload -(defun doom|android-mode-enable-maybe () - (let ((root (doom/project-root))) - (when (or (doom/project-has-files "local.properties" root) - (doom/project-has-files "AndroidManifest.xml" root) - (doom/project-has-files "src/main/AndroidManifest.xml" root)) - (android-mode +1) - (doom/set-build-command "./gradlew %s" "build.gradle")))) - -(provide 'defuns-java) -;;; defuns-java.el ends here diff --git a/modules/defuns/defuns-julia.el b/modules/defuns/defuns-julia.el deleted file mode 100644 index b99232226..000000000 --- a/modules/defuns/defuns-julia.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; defuns-julia.el - -;;;###autoload -(defun doom/julia-repl () - "Run an inferior instance of `julia' inside Emacs." - (interactive) - (let ((buffer (get-buffer-create "*Julia*"))) - (unless (comint-check-proc "*Julia*") - (apply #'make-comint-in-buffer "Julia" "*Julia*" julia-program julia-arguments)) - (pop-to-buffer buffer) - (with-current-buffer buffer - (inferior-julia-mode)))) - -(provide 'defuns-julia) -;;; defuns-julia.el ends here diff --git a/modules/defuns/defuns-lua.el b/modules/defuns/defuns-lua.el deleted file mode 100644 index bb6bef240..000000000 --- a/modules/defuns/defuns-lua.el +++ /dev/null @@ -1,10 +0,0 @@ -;;; defuns-lua.el - -;;;###autoload -(defun doom/inf-lua () - (interactive) - (lua-start-process "lua" "lua") - (pop-to-buffer lua-process-buffer)) - -(provide 'defuns-lua) -;;; defuns-lua.el ends here diff --git a/modules/defuns/defuns-markdown.el b/modules/defuns/defuns-markdown.el deleted file mode 100644 index 8a48f6d92..000000000 --- a/modules/defuns/defuns-markdown.el +++ /dev/null @@ -1,24 +0,0 @@ -;;; defuns-markdown.el - -;; Implement strike-through formatting -(defvar doom--markdown-regex-del - "\\(^\\|[^\\]\\)\\(\\(~\\{2\\}\\)\\([^ \n \\]\\|[^ \n ]\\(?:.\\|\n[^\n]\\)*?[^\\ ]\\)\\(\\3\\)\\)") - -;;;###autoload -(defun doom/markdown-insert-del () - "Surround region in github strike-through delimiters." - (interactive) - (let ((delim "~~")) - (if (markdown-use-region-p) - ;; Active region - (let ((bounds (markdown-unwrap-things-in-region - (region-beginning) (region-end) - doom--markdown-regex-del 2 4))) - (markdown-wrap-or-insert delim delim nil (car bounds) (cdr bounds))) - ;; Bold markup removal, bold word at point, or empty markup insertion - (if (thing-at-point-looking-at doom--markdown-regex-del) - (markdown-unwrap-thing-at-point nil 2 4) - (markdown-wrap-or-insert delim delim 'word nil nil))))) - -(provide 'defuns-markdown) -;;; defuns-markdown.el ends here diff --git a/modules/defuns/defuns-org.el b/modules/defuns/defuns-org.el deleted file mode 100644 index e17947bc9..000000000 --- a/modules/defuns/defuns-org.el +++ /dev/null @@ -1,415 +0,0 @@ -;;; defuns-org.el - -;;;###autoload -(defun doom/org-indent () - "Indent the current item (header or item). Otherwise, forward to -`self-insert-command'." - (interactive) - (cond ((org-at-item-p) - (org-indent-item-tree)) - ((org-at-heading-p) - (ignore-errors (org-demote))) - (t (call-interactively 'self-insert-command)))) - -;;;###autoload -(defun doom/org-indent-or-next-field () - "Depending on the context either indent the current item or go the next table field." - (interactive) - (call-interactively (if (org-at-table-p) 'org-table-next-field 'doom/org-indent))) - -;;;###autoload -(defun doom/org-dedent () - "Dedent the current item (header or item). Otherwise, forward to -`self-insert-command'." - (interactive) - (cond ((org-at-item-p) - (let ((struct (if (org-region-active-p) - (save-excursion (goto-char (region-beginning)) - (org-list-struct)) - (org-list-struct)))) - (org-list-indent-item-generic -1 nil struct))) - ((org-at-heading-p) - (ignore-errors (org-promote))) - (t (call-interactively 'self-insert-command)))) - -;;;###autoload -(defun doom/org-dedent-or-prev-field () - "Depending on the context either dedent the current item or go the previous -table field." - (interactive) - (call-interactively (if (org-at-table-p) 'org-table-previous-field 'doom/org-dedent))) - -;;;###autoload -(defun doom/org-insert-item (direction) - "Inserts a new heading, table cell or item, depending on the context. -DIRECTION can be 'above or 'below. - -I use this instead of `org-insert-item' or `org-insert-heading' which are too -opinionated and perform this simple task incorrectly (e.g. whitespace in the -wrong places)." - (interactive) - (let* ((context (org-element-lineage - (org-element-context) - '(table table-row headline inlinetask item plain-list) - t)) - (type (org-element-type context))) - (cond ((eq type 'item) - (let ((marker (org-element-property :bullet context))) - (cl-case direction - ('below - (goto-char (line-end-position)) - (insert (concat "\n" marker))) - ('above - (goto-char (line-beginning-position)) - (insert marker) - (save-excursion (insert "\n"))))) - (when (org-element-property :checkbox context) - (insert "[ ] "))) - ((memq type '(table table-row)) - (cl-case direction - ('below (org-table-insert-row t)) - ('above (doom/org-table-prepend-row-or-shift-up)))) - (t - (let ((level (save-excursion - (org-back-to-heading) - (org-element-property - :level (org-element-lineage (org-element-context) - '(headline) t))))) - (cl-case direction - ('below - (let ((at-eol (= (point) (1- (line-end-position))))) - (goto-char (line-end-position)) - (org-end-of-subtree) - (insert (concat "\n" - (when (= level 1) - (if at-eol - (ignore (cl-incf level)) - "\n")) - (make-string level ?*) - " ")))) - ('above - (org-back-to-heading) - (org-insert-heading) - (when (= level 1) - (save-excursion (evil-open-above 1)) - (save-excursion (insert "\n"))))) - (when (org-element-property :todo-type context) - (org-todo 'todo))))) - (evil-append-line 1))) - -;;;###autoload -(defun doom/org-toggle-checkbox () - (interactive) - (let ((context (org-element-lineage (org-element-context) '(item) t))) - (when context - (org-end-of-line) - (org-beginning-of-line) - (if (org-element-property :checkbox context) - (when (search-backward-regexp "\\[[ +-]\\]" (line-beginning-position) t) - (delete-char 4)) - (insert "[ ] "))))) - -;;;###autoload -(defun doom/org-toggle-fold () - "Toggle the local fold at the point (as opposed to cycling through all levels -with `org-cycle')." - (interactive) - (cond ((org-at-heading-p) - (outline-toggle-children)) - ((org-at-item-p) - (org-cycle)))) - -;;;###autoload -(defun doom/org-dwim-at-point () - "Do-what-I-mean at point. This includes following timestamp links, aligning -tables, toggling checkboxes/todos, executing babel blocks, previewing latex -fragments, opening links, or refreshing images." - (interactive) - (let* ((scroll-pt (window-start)) - (context (org-element-context)) - (type (org-element-type context)) - (value (org-element-property :value context))) - (cond - ((memq type '(planning timestamp)) - (org-follow-timestamp-link)) - - ((memq type '(table table-row)) - (if (org-element-property :tblfm (org-element-property :parent context)) - (org-table-recalculate t) - (org-table-align))) - - ((and (memq type '(item)) - (org-element-property :checkbox context)) - (org-toggle-checkbox)) - - ((and (memq type '(headline)) - (org-element-property :todo-type context)) - (org-todo - (if (eq (org-element-property :todo-type context) 'done) 'todo 'done))) - - ((and (memq type '(headline)) - (string= "ARCHIVE" (car-safe (org-get-tags)))) - (org-force-cycle-archived)) - - ((memq type '(headline)) - (org-remove-latex-fragment-image-overlays) - (org-preview-latex-fragment '(4))) - - ((memq type '(babel-call)) - (org-babel-lob-execute-maybe)) - - ((memq type '(src-block inline-src-block)) - (org-babel-execute-src-block)) - - ((memq type '(latex-fragment latex-environment)) - (org-preview-latex-fragment)) - - ((memq type '(link)) - (let ((path (org-element-property :path (org-element-lineage (org-element-context) '(link) t)))) - (if (and path (image-type-from-file-name path)) - (doom/org-refresh-inline-images) - (org-open-at-point)))) - - (t (doom/org-refresh-inline-images))) - (set-window-start nil scroll-pt))) - -;;;###autoload -(defun doom/org-refresh-inline-images () - "Refresh image previews in the current heading/tree." - (interactive) - (if (> (length org-inline-image-overlays) 0) - (org-remove-inline-images) - (org-display-inline-images - t t - (if (org-before-first-heading-p) - (line-beginning-position) - (save-excursion (org-back-to-heading) (point))) - (if (org-before-first-heading-p) - (line-end-position) - (save-excursion (org-end-of-subtree) (point)))))) - -;;;###autoload -(defun doom/org-surround (delim) - "Surround the cursor (or selected region) with DELIM." - (if (region-active-p) - (save-excursion - (goto-char (region-beginning)) - (insert delim) - (goto-char (region-end)) - (insert delim)) - (insert delim) - (save-excursion (insert delim)))) - - -;; -;; tables -;; - -;;;###autoload -(defun doom/org-table-next-row () - (interactive) - (if (org-at-table-p) (org-table-next-row) (org-down-element))) - -;;;###autoload -(defun doom/org-table-previous-row () - "Go to the previous row (same column) in the current table. Before doing so, -re-align the table if necessary. (Necessary because org-mode has a -`org-table-next-row', but not `org-table-previous-row')" - (interactive) - (if (org-at-table-p) - (progn - (org-table-maybe-eval-formula) - (org-table-maybe-recalculate-line) - (if (and org-table-automatic-realign - org-table-may-need-update) - (org-table-align)) - (let ((col (org-table-current-column))) - (beginning-of-line 0) - (when (or (not (org-at-table-p)) (org-at-table-hline-p)) - (beginning-of-line)) - (org-table-goto-column col) - (skip-chars-backward "^|\n\r") - (when (org-looking-at-p " ") (forward-char)))) - (org-up-element))) - -;;;###autoload -(defun doom/org-table-next-field () - (interactive) - (if (org-at-table-p) (org-table-next-field) (org-end-of-line))) - -;;;###autoload -(defun doom/org-table-previous-field () - (interactive) - (if (org-at-table-p) (org-table-previous-field) (org-beginning-of-line))) - -;;;###autoload -(defun doom/org-table-append-field-or-shift-right () - (interactive) - (org-shiftmetaright) - (when (org-at-table-p) (org-metaright))) - -;;;###autoload -(defun doom/org-table-prepend-field-or-shift-left () - (interactive) - (if (org-at-table-p) (org-shiftmetaright) (org-shiftmetaleft))) - -;;;###autoload -(defun doom/org-table-append-row-or-shift-down () - (interactive) - (org-shiftmetadown) - (when (org-at-table-p) (org-metadown))) - -;;;###autoload -(defun doom/org-table-prepend-row-or-shift-up () - (interactive) - (if (org-at-table-p) - (org-shiftmetadown) - (org-shiftmetaup))) - - -;; -;; Links -;; - -;;;###autoload (autoload 'doom:org-link "defuns-org" nil t) -(evil-define-command doom:org-link (link) - "Add LINK to the org buffer. If a selection is active, link selection to LINK." - (interactive "") - (unless (eq major-mode 'org-mode) - (user-error "Not in an org-mode buffer")) - (let ((beg evil-visual-beginning) - (end evil-visual-end)) - (org-insert-link nil link (when (and beg end) (buffer-substring-no-properties beg end))))) - -;;;###autoload -(defun doom/org-remove-link () - "Replace an org link by its description or if empty its address" - (interactive) - (if (org-in-regexp org-bracket-link-regexp 1) - (let ((remove (list (match-beginning 0) (match-end 0))) - (description (if (match-end 3) - (org-match-string-no-properties 3) - (org-match-string-no-properties 1)))) - (apply 'delete-region remove) - (insert description)))) - - -;; -;; org-capture -;; - -;;;###autoload -(defun doom/org-capture (&optional template string) - "Run `org-capture' in a new, disposable popup frame." - (interactive) - (let ((org-capture-entry (org-capture-select-template template))) - (cond ((equal org-capture-entry "C") - (find-file (expand-file-name "module-org-notes.el" doom-modules-dir)) - (re-search-forward "^\\s-+(setq org-capture-templates" (point-max) t) - (recenter)) - ((not (equal org-capture-entry "q")) - (let ((frame (make-frame '((name . "org-capture") (height . 15) (width . 80))))) - (with-selected-frame frame - (if string - (org-capture-string string) - (org-capture)))))))) - -;;;###autoload (autoload 'doom:org-capture "defuns-org" nil t) -(evil-define-operator doom:org-capture (&optional beg end bang) - "Send a selection to `doom/org-capture'." - :move-point nil - :type inclusive - (interactive "") - (doom/org-capture - (if (and (evil-visual-state-p) beg end) - (buffer-substring beg end) - ""))) - - -;; -;; attachments -;; - -;;;###autoload (autoload 'doom:org-attach "defuns-org-notes" nil t) -(evil-define-command doom:org-attach (&optional uri) - (interactive "") - (unless (eq major-mode 'org-mode) - (user-error "Not in an org-mode buffer")) - (if uri - (let* ((rel-path (org-download--fullname uri)) - (new-path (f-expand rel-path)) - (image-p (image-type-from-file-name uri))) - (cond ((string-match-p (concat "^" (regexp-opt '("http" "https" "nfs" "ftp" "file")) ":/") uri) - (url-copy-file uri new-path)) - (t (copy-file uri new-path))) - (unless new-path - (user-error "No file was provided")) - (if (evil-visual-state-p) - (org-insert-link nil (format "./%s" rel-path) - (concat (buffer-substring-no-properties (region-beginning) (region-end)) - " " (doom--org-attach-icon rel-path))) - - (insert (if image-p - (format "[[./%s]] " rel-path) - (format "%s [[./%s][%s]] " - (doom--org-attach-icon rel-path) - rel-path (f-filename rel-path))))) - (when (string-match-p (regexp-opt '("jpg" "jpeg" "gif" "png")) (f-ext rel-path)) - (org-redisplay-inline-images))) - (let ((default-directory ".attach/")) - (if (file-exists-p default-directory) - (call-interactively 'find-file) - (user-error "No attachments"))))) - -(defun doom--org-attach-icon (path) - (char-to-string (pcase (downcase (f-ext path)) - ("jpg" ?) ("jpeg" ?) ("png" ?) ("gif" ?) - ("pdf" ?) - ("ppt" ?) ("pptx" ?) - ("xls" ?) ("xlsx" ?) - ("doc" ?) ("docx" ?) - ("ogg" ?) ("mp3" ?) ("wav" ?) - ("mp4" ?) ("mov" ?) ("avi" ?) - ("zip" ?) ("gz" ?) ("tar" ?) ("7z" ?) ("rar" ?) - (_ ?)))) - -;;;###autoload -(defun doom/org-cleanup-attachments () - ;; "Deletes any attachments that are no longer present in the org-mode buffer." - (let* ((attachments-local (doom-org-attachments)) - (attachments (f-entries org-attach-directory)) - (to-delete (-difference attachments-local attachments))) - ;; TODO - to-delete)) - -(defun doom-org-attachments () - (unless (eq major-mode 'org-mode) - (user-error "Not an org buffer")) - (org-save-outline-visibility nil - (let ((attachments '()) - element - file) - (when (and (f-dir? org-attach-directory) - (> (length (f-glob (concat (f-slash org-attach-directory) "*"))) 0)) - (save-excursion - (goto-char (point-min)) - (while (progn (org-next-link) (not org-link-search-failed)) - (setq element (org-element-lineage (org-element-context) '(link) t)) - (when element - (setq file (expand-file-name (org-element-property :path element))) - (when (and (string= (org-element-property :type element) "file") - (string= (concat (f-base (f-dirname file)) "/") org-attach-directory) - (file-exists-p file)) - (push file attachments)))))) - (-distinct attachments)))) - -;;;###autoload -(defun doom/org-download-dnd (uri action) - (if (eq major-mode 'org-mode) - (doom:org-attach uri) - (let ((dnd-protocol-alist - (rassq-delete-all 'doom/org-download-dnd (copy-alist dnd-protocol-alist)))) - (dnd-handle-one-url nil action uri)))) - -(provide 'defuns-org) -;;; defuns-org.el ends here diff --git a/modules/defuns/defuns-python.el b/modules/defuns/defuns-python.el deleted file mode 100644 index 9c1419a61..000000000 --- a/modules/defuns/defuns-python.el +++ /dev/null @@ -1,15 +0,0 @@ -;;; defuns-python.el - -;;;###autoload -(defun doom*anaconda-mode-doc-buffer () - "Delete the window on escape or C-g." - (with-current-buffer (get-buffer "*anaconda-doc*") - (local-set-key [escape] 'anaconda-nav-quit) - (local-set-key [?\C-g] 'anaconda-nav-quit))) - -;;;###autoload -(defun doom/inf-python () - (run-python python-shell-interpreter t t)) - -(provide 'defuns-python) -;;; defuns-python.el ends here diff --git a/modules/defuns/defuns-quickrun.el b/modules/defuns/defuns-quickrun.el deleted file mode 100644 index cd8d2bb8f..000000000 --- a/modules/defuns/defuns-quickrun.el +++ /dev/null @@ -1,97 +0,0 @@ -;;; defuns-quickrun.el - -;;;; Code building ;;;;;;;;;;;;;;;;;;;;;; -;;;###autoload -(defvar doom--build-command '("make %s" . "Makefile")) -(make-variable-buffer-local 'doom--build-command) - -;;;###autoload -(defun doom/set-build-command (command &optional file) - (when (or (null file) - (doom/project-has-files file)) - (setq doom--build-command `(,command . ,file)))) - -;;;###autoload (autoload 'doom:build "defuns-quickrun" nil t) -(evil-define-command doom:build (arg) - "Call a build command in the current directory. If ARG is nil this function calls -`recompile', otherwise it calls `compile' passing ARG as build command." - (interactive "") - (when (null doom--build-command) - (user-error "No build command was set")) - (let ((build-file (cdr doom--build-command)) - (build-cmd (car doom--build-command)) - (project-dir (doom/project-root))) - (if (or (null build-file) (f-exists? (f-expand build-file project-dir))) - (if (or (symbolp build-cmd) (functionp build-cmd)) - (if (commandp build-cmd) - (call-interactively build-cmd) - (funcall build-cmd)) - (let ((default-directory project-dir)) - (compile (format build-cmd (or arg ""))))) - (error "Could not build!")))) - -;;;; Code running ;;;;;;;;;;;;;;;;;;;;;; -;;;###autoload (autoload 'doom:eval-buffer "defuns-quickrun" nil t) -(evil-define-command doom:eval-buffer () - "Evaluate the whole buffer." - :move-point nil :repeat nil - (interactive) - (cond ((eq major-mode 'emacs-lisp-mode) - (doom:eval-region (point-min) (point-max))) - (t (quickrun)))) - -;;;###autoload (autoload 'doom:eval-region "defuns-quickrun" nil t) -(evil-define-operator doom:eval-region (beg end) - "Evaluate a region and, if large enough, prints its output to a popup buffer (if an -elisp buffer). Otherwise forward the region to Quickrun." - :move-point nil :repeat nil - (interactive "") - (cond ((eq major-mode 'emacs-lisp-mode) - (require 'pp) - (let ((result (eval (read (buffer-substring-no-properties beg end)))) - lines) - (let ((buf (get-buffer-create "*eval*"))) - (with-current-buffer buf - (read-only-mode -1) - (setq-local scroll-margin 0) - (erase-buffer) - (prin1 result buf) - (emacs-lisp-mode) - (pp-buffer) - (read-only-mode 1) - (setq lines (count-lines (point-min) (point-max))) - (goto-char (point-min)) - (when (< lines 5) - (message "%s" (buffer-substring (point-min) (point-max))) - (kill-buffer buf))) - (unless (< lines 5) - (doom/popup-buffer buf))))) - (t (quickrun-region beg end)))) - -;;;###autoload (autoload 'doom:eval-region-and-replace "defuns-quickrun" nil t) -(evil-define-operator doom:eval-region-and-replace (beg end) - (interactive "") - (cond ((eq major-mode 'emacs-lisp-mode) - (kill-region beg end) - (condition-case nil - (prin1 (eval (read (current-kill 0))) - (current-buffer)) - (error (message "Invalid expression") - (insert (current-kill 0))))) - (t (quickrun-replace-region beg end)))) - -;;;###autoload -(defun doom*quickrun-close-popup (&optional _ _ _ _) - "Allows us to re-run quickrun from inside the quickrun buffer." - (awhen (get-buffer-window quickrun/buffer-name) - (shut-up! (quickrun/kill-running-process)) - (doom/popup-close it nil))) - -;;;###autoload -(defun doom|quickrun-after-run () - "Ensures window is scrolled to BOF" - (with-selected-window (get-buffer-window quickrun/buffer-name) - (goto-char (point-min)))) - -(provide 'defuns-quickrun) -;;; defuns-quickrun.el ends here diff --git a/modules/defuns/defuns-realgud.el b/modules/defuns/defuns-realgud.el deleted file mode 100644 index 0d548608e..000000000 --- a/modules/defuns/defuns-realgud.el +++ /dev/null @@ -1,73 +0,0 @@ -;;; defuns-realgud.el - -;; TODO Find a more elegant solution -;; FIXME Causes realgud:cmd-* to focus popup on every invocation -;;;###autoload -(defun doom*realgud:run-process (debugger-name script-filename cmd-args minibuffer-history &optional no-reset) - (let ((cmd-buf)) - (setq cmd-buf - (apply 'realgud-exec-shell debugger-name script-filename - (car cmd-args) no-reset (cdr cmd-args))) - (let ((process (get-buffer-process cmd-buf))) - (if (and process (eq 'run (process-status process))) - (progn - (pop-to-buffer cmd-buf) - (define-key evil-emacs-state-local-map (kbd "ESC ESC") 'doom/debug-quit) - (realgud:track-set-debugger debugger-name) - (realgud-cmdbuf-info-in-debugger?= 't) - (realgud-cmdbuf-info-cmd-args= cmd-args) - (when cmd-buf - (switch-to-buffer cmd-buf) - (when realgud-cmdbuf-info - (let* ((info realgud-cmdbuf-info) - (cmd-args (realgud-cmdbuf-info-cmd-args info)) - (cmd-str (mapconcat 'identity cmd-args " "))) - (set minibuffer-history - (list-utils-uniq (cons cmd-str (eval minibuffer-history)))))))) - ;; else - (progn - (if cmd-buf (switch-to-buffer cmd-buf)) - (message "Error running command: %s" (mapconcat 'identity cmd-args " "))))) - cmd-buf)) - - -;;;###autoload (autoload 'doom:debug-toggle-breakpoint "defuns-realgud" nil t) -(evil-define-command doom:debug-toggle-breakpoint (&optional bang) - (interactive "") - (call-interactively (if bang 'realgud:cmd-clear 'realgud:cmd-break))) - -;;;###autoload -(defun doom/debug-quit () - (interactive) - (ignore-errors (call-interactively 'realgud:cmd-quit)) - (doom/popup-close) - (evil-normal-state)) - -;;;###autoload (autoload 'doom:debug "defuns-realgud" nil t) -(evil-define-command doom:debug (&optional path) - "Initiate debugger for current major mode" - (interactive "") - (let ((default-directory (doom/project-root))) - (cond ((memq major-mode '(c-mode c++-mode)) - (realgud:gdb (if path (concat "gdb " path)))) - ((memq major-mode '(ruby-mode enh-ruby-mode)) - (doom:repl nil (format "run '%s'" (f-filename (or path buffer-file-name))))) - ((eq major-mode 'sh-mode) - (let ((shell sh-shell)) - (when (string= shell "sh") - (setq shell "bash")) - (cond ((string= shell "bash") - (realgud:bashdb (if path (concat "bashdb " path)))) - ((string= shell "zsh") - (realgud:zshdb (if path (concat "zshdb " path)))) - (t (user-error "No shell debugger for %s" shell))))) - ;; TODO Add python debugging - ((memq major-mode '(js-mode js2-mode js3-mode)) - (realgud:trepanjs)) - ((eq major-mode 'haskell-mode) - (haskell-debug)) - (t (user-error "No debugger for %s" major-mode))))) - - -(provide 'defuns-realgud) -;;; defuns-realgud.el ends here diff --git a/modules/defuns/defuns-regex.el b/modules/defuns/defuns-regex.el deleted file mode 100644 index 36d4c2a55..000000000 --- a/modules/defuns/defuns-regex.el +++ /dev/null @@ -1,40 +0,0 @@ -;;; defuns-regex.el - -;;;###autoload -(defun doom|reb-cleanup () - (replace-regexp "^[ \n]*" "" nil (point-min) (point-max)) - (text-scale-set 2) - (goto-char 2)) - -;;;###autoload (autoload 'doom:regex "defuns-regex" nil t) -(evil-define-operator doom:regex (beg end type &optional regexstr bang) - "Either a) converts selected (or entered-in) pcre regex into elisp -regex, OR b) opens up re-builder." - :move-point nil - :type inclusive - :repeat nil - (interactive "") - (if (reb-mode-buffer-p) - (if regexstr - (let ((regexstr (s-trim (buffer-string)))) - (if bang - (rxt-explain-pcre regexstr) - (rxt-pcre-to-elisp (s-trim (buffer-string))))) - (erase-buffer) - (insert (concat "/" regexstr "/"))) - (cond ((and beg end (/= beg (1- end))) ; Convert selection from pcre regex to elisp - (let ((regexstr (buffer-substring-no-properties beg end))) - (if bang - (rxt-explain-pcre (concat "/" regexstr "/")) - (delete-region beg end) - (insert (rxt-pcre-to-elisp regexstr))))) - (regexstr ; Convert input regex into elisp regex - (let ((newregex (rxt-pcre-to-elisp regexstr))) - (when bang - (setq newregex (s-replace "\\" "\\\\" newregex))) - (kill-new newregex) - (message "Copied regex to kill ring: %s" newregex))) - (t (re-builder))))) - -(provide 'defuns-regex) -;;; defuns-regex.el ends here diff --git a/modules/defuns/defuns-sh.el b/modules/defuns/defuns-sh.el deleted file mode 100644 index 73aeab10e..000000000 --- a/modules/defuns/defuns-sh.el +++ /dev/null @@ -1,50 +0,0 @@ -;;; defuns-sh.el - -(defvar sh-extra-font-lock--keywords - `((doom/sh-extra-font-lock--match-var-in-double-quoted-string - (2 font-lock-variable-name-face prepend)) - (,(concat - "\\<" - (regexp-opt '("sudo" "echo" "ls" "sleep" "tee" "cd" "cat" "service")) - "\\>") - (0 'font-lock-builtin-face)))) - -;;;###autoload -(defun doom/sh-extra-font-lock--is-in-double-quoted-string () - "Non-nil if point in inside a double-quoted string." - (let ((state (syntax-ppss))) - (eq (nth 3 state) ?\"))) - -;;;###autoload -(defun doom/sh-extra-font-lock--match-var-in-double-quoted-string (limit) - "Search for variables in double-quoted strings bounded by LIMIT." - (let (res) - (while - (and (setq res - (re-search-forward - "\\$\\({#?\\)?\\([[:alpha:]_][[:alnum:]_]*\\|[-#?@!]\\)" - limit t)) - (not (doom/sh-extra-font-lock--is-in-double-quoted-string)))) - res)) - -;;;###autoload -(defun doom|sh-extra-font-lock-activate () - "Activate sh-extra-font-lock." - (interactive) - (font-lock-add-keywords nil sh-extra-font-lock--keywords) - (if (fboundp 'font-lock-flush) - (font-lock-flush) - (when font-lock-mode - (with-no-warnings - (font-lock-fontify-buffer))))) - -;;;###autoload -(defun doom/inf-shell () - (let* ((dest-sh (symbol-name sh-shell)) - (sh-shell-file dest-sh)) - (sh-shell-process t) - (with-current-buffer "*shell*" - (rename-buffer (format "*shell [%s]*" dest-sh))))) - -(provide 'defuns-sh) -;;; defuns-sh.el ends here diff --git a/modules/defuns/defuns-text.el b/modules/defuns/defuns-text.el deleted file mode 100644 index 519067329..000000000 --- a/modules/defuns/defuns-text.el +++ /dev/null @@ -1,11 +0,0 @@ -;;; defuns-text.el - -;;;###autoload (autoload 'doom:insert-date "defuns-text" nil t) -(evil-define-command doom:insert-date (beg end &optional format) - (interactive "") - (when (and (evil-visual-state-p) beg end) - (kill-region beg end)) - (insert (format-time-string (or format "%x")))) - -(provide 'defuns-text) -;;; defuns-text.el ends here diff --git a/modules/defuns/defuns-typescript.el b/modules/defuns/defuns-typescript.el deleted file mode 100644 index 8541f44d8..000000000 --- a/modules/defuns/defuns-typescript.el +++ /dev/null @@ -1,73 +0,0 @@ -;;; defuns-typescript.el - -(defvar ts-externs-vars-re - (concat "\\_<" - (regexp-opt - '("__dirname" "__filename")) - "\\_>")) - -(defvar ts-externs-fns-re - (concat "\\_<" - (regexp-opt - '("Buffer" "clearInterval" "clearTimeout" "require" "setInterval" - "setTimeout" "querystring" "setImmediate" "clearImmediate")) - "\\_>")) - -(defvar ts-ecma-externs-re - (concat "\\_<" - (regexp-opt '("decoreURI" "decoreURIComponent" "encodeURI" - "encodeURIComponent" "escape" "eval" "isFinite" - "isNaN" "parseFloat" "parseInt" "escape" "unescape")) - "\\_>")) - -(defface ts-object-property '((t (:inherit font-lock-function-name-face))) - "") - -;;;###autoload -(defun doom|ts-fontify () - (font-lock-add-keywords - nil `((,ts-externs-vars-re - . 'font-lock-builtin-face) - (,ts-externs-fns-re - . 'font-lock-keyword-face) - (,ts-ecma-externs-re - . 'font-lock-builtin-face) - ;; Lambda character - (" \\(=>\\) " - . 'font-lock-preprocessor-face) - ;; $-prefixed variables - ("\\_<\\$[[:alnum:]_]+\\_>" - . 'font-lock-keyword-face) - ;; object keys - ("\\(?:^\\|,\\|{\\)\\s-*\\([[:alpha:]_$][[:alnum:]_$]*\\)\\s-*:" - 1 'ts-object-property) - ;; variable.prefixes - ("\\_<\\([a-z_$][[:alnum:]_$]*\\)\\." - 1 'font-lock-variable-name-face) - ;; functioncalls() - ("\\_<\\([a-z_$][[:alnum:]_$]*\\)(" - 1 'font-lock-function-name-face) - ;; PascalCase ClassNames - ("\\_<[A-Z][a-z0-9_]+\\_>" - . 'font-lock-type-face) - ;; CONSTANTS - ("\\_<[A-Z0-9_]+\\_>" - . 'font-lock-builtin-face) - ;; Import froms - ("^\\s-*import\\s-+\\(?:{[^}]*}\\|[^ ]+\\|[^ ]+\\s-+as\\s-+[^ ]+\\)\\s-+\\(from\\)\\s-" - (1 'font-lock-keyword-face)) - ("^\\s-*import\\s-+\\(?:[^ ]+\\s-+\\(as\\)\\s-+[^ ]+\\)\\s-+from\\s-" - (1 'font-lock-keyword-face)) - - ;; ES6 Lambda parameters (...) => {} - (,(concat - "\\s-(\\s-*" - typescript--name-start-re) - ,(list (concat "\\(" typescript--name-re "\\)\\(\\s-*).*\\)?\\s-*") - '(backward-char) - '(end-of-line) - '(1 font-lock-variable-name-face))) - ))) - -(provide 'defuns-typescript) -;;; defuns-typescript.el ends here diff --git a/modules/defuns/defuns-web.el b/modules/defuns/defuns-web.el deleted file mode 100644 index b92f269c1..000000000 --- a/modules/defuns/defuns-web.el +++ /dev/null @@ -1,45 +0,0 @@ -;;; defuns-web.el - -;;;###autoload -(defun doom/web-html-email2mailto (beg end) - (interactive "r") - (replace-regexp "\\b\\([a-zA-Z0-9._+-%]+@[a-zA-Z0-9-.]+\\.[a-zA-Z]+\\)\\b" - "\\1" - nil beg end)) - -;;;###autoload -(defun doom/web-html-url2anchor (beg end) - (interactive "r") - (replace-regexp "\\bhttps?://.+?\\b" - "\\1" - nil beg end)) - -;;;###autoload -(defun doom/web-refresh-browser () - (interactive) - (call-process-shell-command "osascript -e 'tell application \"Google Chrome\" to tell the active tab of its first window to reload' &" nil 0)) - -;;;###autoload (autoload 'doom/html-entities "defuns-web" nil t) -(evil-define-operator doom/html-entities (bang beg end) - "HTML encode/decode the selected region. Based on Xah's replace HTML named entities -function @ http://ergoemacs.org/emacs/elisp_replace_html_entities_command.html" - (interactive "") - (let ((reps [[" " " "] [" " " "] [" " " "] [" " " "] - ["‏" "‏"] ["‎" "‎"] ["‍" "‍"] ["‌" "‌"] - ["¡" "¡"] ["¢" "¢"] ["£" "£"] ["¤" "¤"] ["¥" "¥"] ["¦" "¦"] ["§" "§"] ["¨" "¨"] ["©" "©"] ["ª" "ª"] ["«" "«"] ["¬" "¬"] ["­" "­"] ["®" "®"] ["¯" "¯"] ["°" "°"] ["±" "±"] ["²" "²"] ["³" "³"] ["´" "´"] ["µ" "µ"] ["¶" "¶"] ["·" "·"] ["¸" "¸"] ["¹" "¹"] ["º" "º"] ["»" "»"] ["¼" "¼"] ["½" "½"] ["¾" "¾"] ["¿" "¿"] - ["À" "À"] ["Á" "Á"] ["Â" "Â"] ["Ã" "Ã"] ["Ä" "Ä"] ["Å" "Å"] ["Æ" "Æ"] ["Ç" "Ç"] ["È" "È"] ["É" "É"] ["Ê" "Ê"] ["Ë" "Ë"] ["Ì" "Ì"] ["Í" "Í"] ["Î" "Î"] ["Ï" "Ï"] ["Ð" "Ð"] ["Ñ" "Ñ"] ["Ò" "Ò"] ["Ó" "Ó"] ["Ô" "Ô"] ["Õ" "Õ"] ["Ö" "Ö"] ["×" "×"] ["Ø" "Ø"] ["Ù" "Ù"] ["Ú" "Ú"] ["Û" "Û"] ["Ü" "Ü"] ["Ý" "Ý"] ["Þ" "Þ"] ["ß" "ß"] ["à" "à"] ["á" "á"] ["â" "â"] ["ã" "ã"] ["ä" "ä"] ["å" "å"] ["æ" "æ"] ["ç" "ç"] ["è" "è"] ["é" "é"] ["ê" "ê"] ["ë" "ë"] ["ì" "ì"] ["í" "í"] ["î" "î"] ["ï" "ï"] ["ð" "ð"] ["ñ" "ñ"] ["ò" "ò"] ["ó" "ó"] ["ô" "ô"] ["õ" "õ"] ["ö" "ö"] - ["÷" "÷"] ["ø" "ø"] ["ù" "ù"] ["ú" "ú"] ["û" "û"] ["ü" "ü"] ["ý" "ý"] ["þ" "þ"] ["ÿ" "ÿ"] ["ƒ" "ƒ"] - ["Α" "Α"] ["Β" "Β"] ["Γ" "Γ"] ["Δ" "Δ"] ["Ε" "Ε"] ["Ζ" "Ζ"] ["Η" "Η"] ["Θ" "Θ"] ["Ι" "Ι"] ["Κ" "Κ"] ["Λ" "Λ"] ["Μ" "Μ"] ["Ν" "Ν"] ["Ξ" "Ξ"] ["Ο" "Ο"] ["Π" "Π"] ["Ρ" "Ρ"] ["Σ" "Σ"] ["Τ" "Τ"] ["Υ" "Υ"] ["Φ" "Φ"] ["Χ" "Χ"] ["Ψ" "Ψ"] ["Ω" "Ω"] ["α" "α"] ["β" "β"] ["γ" "γ"] ["δ" "δ"] ["ε" "ε"] ["ζ" "ζ"] ["η" "η"] ["θ" "θ"] ["ι" "ι"] ["κ" "κ"] ["λ" "λ"] ["μ" "μ"] ["ν" "ν"] ["ξ" "ξ"] ["ο" "ο"] ["π" "π"] ["ρ" "ρ"] ["ς" "ς"] ["σ" "σ"] ["τ" "τ"] ["υ" "υ"] ["φ" "φ"] ["χ" "χ"] ["ψ" "ψ"] ["ω" "ω"] ["ϑ" "ϑ"] ["ϒ" "ϒ"] ["ϖ" "ϖ"] - ["•" "•"] ["…" "…"] ["′" "′"] ["″" "″"] ["‾" "‾"] ["⁄" "⁄"] ["℘" "℘"] ["ℑ" "ℑ"] ["ℜ" "ℜ"] ["™" "™"] ["ℵ" "ℵ"] ["←" "←"] ["↑" "↑"] ["→" "→"] ["↓" "↓"] ["↔" "↔"] ["↵" "↵"] ["⇐" "⇐"] ["⇑" "⇑"] ["⇒" "⇒"] ["⇓" "⇓"] ["⇔" "⇔"] ["∀" "∀"] ["∂" "∂"] ["∃" "∃"] ["∅" "∅"] ["∇" "∇"] ["∈" "∈"] ["∉" "∉"] ["∋" "∋"] ["∏" "∏"] ["∑" "∑"] ["−" "−"] ["∗" "∗"] ["√" "√"] ["∝" "∝"] ["∞" "∞"] ["∠" "∠"] ["∧" "∧"] ["∨" "∨"] ["∩" "∩"] ["∪" "∪"] ["∫" "∫"] ["∴" "∴"] ["∼" "∼"] ["≅" "≅"] ["≈" "≈"] ["≠" "≠"] ["≡" "≡"] ["≤" "≤"] ["≥" "≥"] ["⊂" "⊂"] ["⊃" "⊃"] ["⊄" "⊄"] ["⊆" "⊆"] ["⊇" "⊇"] ["⊕" "⊕"] ["⊗" "⊗"] ["⊥" "⊥"] ["⋅" "⋅"] ["⌈" "⌈"] ["⌉" "⌉"] ["⌊" "⌊"] ["⌋" "⌋"] ["⟨" "〈"] ["⟩" "〉"] ["◊" "◊"] ["♠" "♠"] ["♣" "♣"] ["♥" "♥"] ["♦" "♦"] [""" "\""] ["Œ" "Œ"] ["œ" "œ"] ["Š" "Š"] ["š" "š"] ["Ÿ" "Ÿ"] ["ˆ" "ˆ"] ["˜" "˜"] ["–" "–"] ["—" "—"] ["‘" "‘"] ["’" "’"] ["‚" "‚"] ["“" "“"] ["”" "”"] ["„" "„"] ["†" "†"] ["‡" "‡"] ["‰" "‰"] ["‹" "‹"] ["›" "›"] ["€" "€"] - ])) - (save-restriction - (narrow-to-region beg end) - (let (case-fold-search) - (mapc (lambda (rep) - (goto-char (point-min)) - (while (search-forward (elt rep (if bang 0 1)) nil t) - (replace-match (elt rep (if bang 1 0)) 'FIXEDCASE 'LITERAL))) - reps))))) - -(provide 'defuns-web) -;;; defuns-web.el ends here diff --git a/modules/defuns/macros-org.el b/modules/defuns/macros-org.el deleted file mode 100644 index f58a9128c..000000000 --- a/modules/defuns/macros-org.el +++ /dev/null @@ -1,45 +0,0 @@ -;;; macros-org.el - -;;;###autoload -(defmacro define-org-section! (type directory &optional id-func link-glob) - (setq directory (f-slash directory)) - (let* ((type-str (symbol-name type)) - (link-sym (intern (format "doom/org-link-%s" type-str))) - (dir-var (intern (format "org-directory-%s" type-str)))) - `(progn - ;; Variable containing directory: `org-directory-%s' - (defvar ,dir-var ,(expand-file-name directory org-directory)) - - ;; Open helm in directory: `doom/helm-org-%s' - (evil-define-command ,(intern (format "doom:org-search-%s" type-str)) () - (interactive) - (let ((default-directory (concat ,dir-var "/" (format-time-string "%Y") "/"))) - (helm-find-files nil))) - - ;; Open helm in directory: `doom/helm-org-%s' - (defun ,(intern (format "doom/helm-org-find-file-in-%s" type-str)) () - (interactive) - (helm-do-ag (f-slash ,dir-var))) - - ;; Org link handler - (defun ,link-sym (id) - (let ((path (f-glob (format (or ,link-glob "%s.org") id) ,dir-var))) - (unless path - (error "ID not found: %s" id)) - (org-open-file (car path) t))) - (org-add-link-type ,type-str ',link-sym) - - ;; Org completion handler - (defun ,(intern (format "org-%s-complete-link" type-str)) () - (let* ((default-directory (f-slash ,dir-var)) - (file (org-iread-file-name "> ")) - (relpath (f-relative file ,dir-var))) - (when (and (not (file-exists-p file)) - (y-or-n-p (format "Create %s?" relpath))) - (write-region "" nil file) - (message "Created %s" file)) - (format "%s:%s" ,type-str ,(if id-func `(funcall ,id-func relpath) '(f-no-ext relpath))) - ))))) - -(provide 'macros-org) -;;; macros-org.el ends here diff --git a/modules/module-eshell.el b/modules/emacs/eshell/config.el similarity index 100% rename from modules/module-eshell.el rename to modules/emacs/eshell/config.el diff --git a/modules/module-org.el b/modules/emacs/org/config.el similarity index 100% rename from modules/module-org.el rename to modules/emacs/org/config.el diff --git a/modules/module-asm.el b/modules/lang/asm/config.el similarity index 100% rename from modules/module-asm.el rename to modules/lang/asm/config.el diff --git a/modules/module-cc.el b/modules/lang/cc/config.el similarity index 100% rename from modules/module-cc.el rename to modules/lang/cc/config.el diff --git a/modules/module-crystal.el b/modules/lang/crystal/config.el similarity index 100% rename from modules/module-crystal.el rename to modules/lang/crystal/config.el diff --git a/modules/module-csharp.el b/modules/lang/csharp/config.el similarity index 100% rename from modules/module-csharp.el rename to modules/lang/csharp/config.el diff --git a/modules/module-css.el b/modules/lang/css/config.el similarity index 100% rename from modules/module-css.el rename to modules/lang/css/config.el diff --git a/modules/module-data.el b/modules/lang/data/config.el similarity index 100% rename from modules/module-data.el rename to modules/lang/data/config.el diff --git a/modules/module-elisp.el b/modules/lang/emacs-lisp/config.el similarity index 100% rename from modules/module-elisp.el rename to modules/lang/emacs-lisp/config.el diff --git a/modules/module-go.el b/modules/lang/go/config.el similarity index 100% rename from modules/module-go.el rename to modules/lang/go/config.el diff --git a/modules/module-haskell.el b/modules/lang/haskell/config.el similarity index 100% rename from modules/module-haskell.el rename to modules/lang/haskell/config.el diff --git a/modules/module-java.el b/modules/lang/java/config.el similarity index 100% rename from modules/module-java.el rename to modules/lang/java/config.el diff --git a/modules/custom-screeps.el b/modules/lang/javascript/+screeps.el similarity index 100% rename from modules/custom-screeps.el rename to modules/lang/javascript/+screeps.el diff --git a/modules/module-js.el b/modules/lang/javascript/config.el similarity index 100% rename from modules/module-js.el rename to modules/lang/javascript/config.el diff --git a/modules/module-julia.el b/modules/lang/julia/config.el similarity index 100% rename from modules/module-julia.el rename to modules/lang/julia/config.el diff --git a/modules/module-latex.el b/modules/lang/latex/config.el similarity index 100% rename from modules/module-latex.el rename to modules/lang/latex/config.el diff --git a/modules/module-lua.el b/modules/lang/lua/config.el similarity index 100% rename from modules/module-lua.el rename to modules/lang/lua/config.el diff --git a/modules/module-octave.el b/modules/lang/octave/config.el similarity index 100% rename from modules/module-octave.el rename to modules/lang/octave/config.el diff --git a/modules/module-php.el b/modules/lang/php/config.el similarity index 100% rename from modules/module-php.el rename to modules/lang/php/config.el diff --git a/modules/module-processing.el b/modules/lang/processing/config.el similarity index 100% rename from modules/module-processing.el rename to modules/lang/processing/config.el diff --git a/modules/module-python.el b/modules/lang/python/config.el similarity index 100% rename from modules/module-python.el rename to modules/lang/python/config.el diff --git a/modules/module-ruby.el b/modules/lang/ruby/config.el similarity index 100% rename from modules/module-ruby.el rename to modules/lang/ruby/config.el diff --git a/modules/module-rust.el b/modules/lang/rust/config.el similarity index 100% rename from modules/module-rust.el rename to modules/lang/rust/config.el diff --git a/modules/module-scala.el b/modules/lang/scala/config.el similarity index 100% rename from modules/module-scala.el rename to modules/lang/scala/config.el diff --git a/modules/module-sh.el b/modules/lang/sh/config.el similarity index 100% rename from modules/module-sh.el rename to modules/lang/sh/config.el diff --git a/modules/module-swift.el b/modules/lang/swift/config.el similarity index 100% rename from modules/module-swift.el rename to modules/lang/swift/config.el diff --git a/modules/module-text.el b/modules/lang/text/config.el similarity index 100% rename from modules/module-text.el rename to modules/lang/text/config.el diff --git a/modules/module-web.el b/modules/lang/web/config.el similarity index 100% rename from modules/module-web.el rename to modules/lang/web/config.el diff --git a/modules/module-rest.el b/modules/lib/rest/autoload.el similarity index 100% rename from modules/module-rest.el rename to modules/lib/rest/autoload.el diff --git a/modules/custom-tmux.el b/modules/lib/tmux/autoload.el similarity index 100% rename from modules/custom-tmux.el rename to modules/lib/tmux/autoload.el