summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.el3
-rw-r--r--settings/sane-defaults.el2
-rw-r--r--settings/setup-auto-insert-mode.el2
-rw-r--r--settings/setup-lisp-mode.el35
-rw-r--r--settings/setup-slime-mode.el32
-rw-r--r--settings/setup-web-mode.el2
-rw-r--r--settings/setup-yasnippet.el2
-rw-r--r--templates/auto-insert/.yas-setup.el73
-rw-r--r--templates/auto-insert/template.c (renamed from auto-insert/template.c)0
-rw-r--r--templates/auto-insert/template.h16
l---------templates/snippets/c-mode/doxycomments (renamed from snippets/c-mode/doxycomments)0
-rw-r--r--templates/snippets/c-mode/headerDEF (renamed from snippets/c-mode/headerDEF)0
-rw-r--r--templates/snippets/clojure-mode/defn (renamed from snippets/clojure-mode/defn)0
-rw-r--r--templates/snippets/clojure-mode/let (renamed from snippets/clojure-mode/let)0
-rw-r--r--templates/snippets/doxygen/doxycomments (renamed from snippets/doxygen/doxycomments)0
-rw-r--r--templates/snippets/python-mode/import_from (renamed from snippets/python-mode/import_from)0
-rw-r--r--templates/snippets/python-mode/lambda (renamed from snippets/python-mode/lambda)0
-rw-r--r--templates/snippets/python-mode/print (renamed from snippets/python-mode/print)0
-rw-r--r--templates/snippets/python-mode/print format (renamed from snippets/python-mode/print format)0
-rw-r--r--templates/snippets/python-mode/script (renamed from snippets/python-mode/script)0
20 files changed, 164 insertions, 3 deletions
diff --git a/init.el b/init.el
index 78c1b87..3e0398a 100644
--- a/init.el
+++ b/init.el
@@ -76,6 +76,7 @@
org-bullets
sbt-mode
scala-mode
+ slime
visual-regexp
web-mode
yaml-mode
@@ -104,12 +105,14 @@
(require 'setup-haskell-mode)
(require 'setup-ido)
(require 'setup-keychain-environment)
+(require 'setup-lisp-mode)
(require 'setup-magit)
(require 'setup-markdown-mode)
(require 'setup-multiple-cursors)
(require 'setup-org-mode)
(require 'setup-purescript-mode)
(require 'setup-scala-mode)
+(require 'setup-slime-mode)
(require 'setup-web-mode)
(require 'setup-yaml-mode)
(require 'setup-yasnippet)
diff --git a/settings/sane-defaults.el b/settings/sane-defaults.el
index ef7e213..a793498 100644
--- a/settings/sane-defaults.el
+++ b/settings/sane-defaults.el
@@ -7,7 +7,7 @@
;; Auto refresh buffers
(global-auto-revert-mode 1)
-;; setup eval elsip
+;; setup eval elisp
(define-key global-map (kbd "C-x C-e") 'eval-last-sexp)
;; define browsers
diff --git a/settings/setup-auto-insert-mode.el b/settings/setup-auto-insert-mode.el
index 81284db..639a4f0 100644
--- a/settings/setup-auto-insert-mode.el
+++ b/settings/setup-auto-insert-mode.el
@@ -5,7 +5,7 @@
(yas-expand-snippet (buffer-string) (point-min) (point-max)))
(custom-set-variables
- '(auto-insert-directory (locate-user-emacs-file "auto-insert")))
+ '(auto-insert-directory (locate-user-emacs-file "templates/auto-insert")))
;; Activate globally
(auto-insert-mode)
diff --git a/settings/setup-lisp-mode.el b/settings/setup-lisp-mode.el
new file mode 100644
index 0000000..c014d17
--- /dev/null
+++ b/settings/setup-lisp-mode.el
@@ -0,0 +1,35 @@
+;;; setup-lisp-mode.el --- lisp mode settings -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2018 Benj Bellon
+
+;; Author: Benj Bellon <benj@benj-ad1>
+;; Keywords: lisp
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Basic settings forlisp mode
+
+;;; Code:
+
+(add-hook 'lisp-mode-hook 'enable-paredit-mode)
+
+(slime-mode)
+
+;; setup eval inferior lisp in slime
+;; (define-key global-map (kbd "C-c C-e") 'slime-eval-last-expression)
+
+(provide 'setup-lisp-mode)
+;;; setup-lisp-mode.el ends here
diff --git a/settings/setup-slime-mode.el b/settings/setup-slime-mode.el
new file mode 100644
index 0000000..cbba516
--- /dev/null
+++ b/settings/setup-slime-mode.el
@@ -0,0 +1,32 @@
+;;; setup-slime-mode.el --- slime mode settings -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2018 Benj Bellon
+
+;; Author: Benj Bellon <benj@benj-ad1>
+;; Keywords: lisp
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; Basic settings for slime
+
+;;; Code:
+
+(require 'slime)
+
+(setq inferior-lisp-program "/usr/bin/sbcl")
+
+(provide 'setup-slime-mode)
+;;; setup-slime-mode.el ends here
diff --git a/settings/setup-web-mode.el b/settings/setup-web-mode.el
index 92cfec2..8aedb56 100644
--- a/settings/setup-web-mode.el
+++ b/settings/setup-web-mode.el
@@ -4,6 +4,7 @@
(add-to-list 'auto-mode-alist '("\\.html?\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.tpl\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.js\\'" . web-mode))
+(add-to-list 'auto-mode-alist '("\\.json\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.[agj]sp\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
@@ -25,6 +26,7 @@
(defun indent-offset ()
"Hooks for web mode."
(setq web-mode-markup-indent-offset 2)
+ (setq web-mode-code-indent-offset 2)
(setq web-mode-css-indent-offset 2)
(setq web-mode-style-padding 2)
(setq web-mode-script-padding 2))
diff --git a/settings/setup-yasnippet.el b/settings/setup-yasnippet.el
index 5441327..ddaf46e 100644
--- a/settings/setup-yasnippet.el
+++ b/settings/setup-yasnippet.el
@@ -1,6 +1,6 @@
(require 'yasnippet)
-(setq yas-snippet-dirs '("~/.emacs.d/snippets"))
+(setq yas-snippet-dirs `(,(locate-user-emacs-file "templates/snippets")))
(yas-global-mode 1)
;; Jump to end of snippet definition
diff --git a/templates/auto-insert/.yas-setup.el b/templates/auto-insert/.yas-setup.el
new file mode 100644
index 0000000..ed5d6b9
--- /dev/null
+++ b/templates/auto-insert/.yas-setup.el
@@ -0,0 +1,73 @@
+;;; .yas-setup.el --- Utility functions for c-mode -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2018 Benj Bellon
+
+;; Author: Benj Bellon <benj@benj-ad1>
+;; Keywords: c
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; As description
+
+;;; Code:
+(require 'dash)
+
+(defun fetch-project-path (root-dir)
+ "Retrieve path from project's root-dir to file as list.
+NOTE: The closest parent root-dir is considered the root.
+ROOT-DIR: the root directory with no path delimiters."
+ (let* ((full-path (locate-dominating-file buffer-file-name root-dir)))
+ (if full-path
+ (let* ((proj-root-dir (nth 1 (reverse (split-string full-path "/"))))
+ (full-path-list (cons proj-root-dir
+ (-flatten (cdr (-split-on proj-root-dir (split-string buffer-file-name "/")))))))
+
+ ;; turn dashes into underscores
+ (mapcar (lambda (x) (replace-regexp-in-string "-" "_" x))
+ full-path-list))
+ nil)
+ ))
+
+(defun build-include-guard-header (root-dir)
+ "Create a full include guard header for c files.
+If the path cannot be found, just use the filename.
+ROOT-DIR: the root directory with no path delimiters.
+FORMAT: PROJDIR_FULL_PATH_TO_FILE_H"
+ (if (fetch-project-path root-dir)
+ (let* ((path-no-file (reverse (cdr (reverse (fetch-project-path root-dir)))))
+ (file-no-ext (car (split-string (car (reverse (fetch-project-path root-dir))) "\\." t))))
+ (concat
+ (mapconcat 'identity
+ (mapcar 'upcase
+ (reverse (cons file-no-ext (reverse path-no-file)))) "_")
+ "_H")
+ )
+ ;; no lazy evaluation, so just do it here
+ (concat
+ (upcase
+ (car (-filter (lambda (x) (not (s-blank? x)))
+ (split-string
+ (car (reverse (split-string buffer-file-name "/")))
+ "\\."))))
+ "_H")
+ ))
+
+(defun git-include-guard-path ()
+ "Build include guard headers for git projects."
+ (build-include-guard-header ".git"))
+
+(provide '.yas-setup)
+;;; .yas-setup.el ends here
diff --git a/auto-insert/template.c b/templates/auto-insert/template.c
index d9afc65..d9afc65 100644
--- a/auto-insert/template.c
+++ b/templates/auto-insert/template.c
diff --git a/templates/auto-insert/template.h b/templates/auto-insert/template.h
new file mode 100644
index 0000000..0f9cb8e
--- /dev/null
+++ b/templates/auto-insert/template.h
@@ -0,0 +1,16 @@
+/**
+ * @file `(buffer-name)`
+ * @brief $1
+ *
+ * $2
+ *
+ * @author MAGIT_USER or SYSTEM_USER
+ * @date `(format-time-string "%Y-%m-%d")`
+ */
+
+#ifndef `(git-include-guard-path)`
+#define `(git-include-guard-path)`
+
+$0
+
+#endif
diff --git a/snippets/c-mode/doxycomments b/templates/snippets/c-mode/doxycomments
index 62fd598..62fd598 120000
--- a/snippets/c-mode/doxycomments
+++ b/templates/snippets/c-mode/doxycomments
diff --git a/snippets/c-mode/headerDEF b/templates/snippets/c-mode/headerDEF
index a07587b..a07587b 100644
--- a/snippets/c-mode/headerDEF
+++ b/templates/snippets/c-mode/headerDEF
diff --git a/snippets/clojure-mode/defn b/templates/snippets/clojure-mode/defn
index 0907e4a..0907e4a 100644
--- a/snippets/clojure-mode/defn
+++ b/templates/snippets/clojure-mode/defn
diff --git a/snippets/clojure-mode/let b/templates/snippets/clojure-mode/let
index 426caa2..426caa2 100644
--- a/snippets/clojure-mode/let
+++ b/templates/snippets/clojure-mode/let
diff --git a/snippets/doxygen/doxycomments b/templates/snippets/doxygen/doxycomments
index 94209bc..94209bc 100644
--- a/snippets/doxygen/doxycomments
+++ b/templates/snippets/doxygen/doxycomments
diff --git a/snippets/python-mode/import_from b/templates/snippets/python-mode/import_from
index 767f344..767f344 100644
--- a/snippets/python-mode/import_from
+++ b/templates/snippets/python-mode/import_from
diff --git a/snippets/python-mode/lambda b/templates/snippets/python-mode/lambda
index 08b268b..08b268b 100644
--- a/snippets/python-mode/lambda
+++ b/templates/snippets/python-mode/lambda
diff --git a/snippets/python-mode/print b/templates/snippets/python-mode/print
index 2392fbd..2392fbd 100644
--- a/snippets/python-mode/print
+++ b/templates/snippets/python-mode/print
diff --git a/snippets/python-mode/print format b/templates/snippets/python-mode/print format
index 704cb53..704cb53 100644
--- a/snippets/python-mode/print format
+++ b/templates/snippets/python-mode/print format
diff --git a/snippets/python-mode/script b/templates/snippets/python-mode/script
index 3113da9..3113da9 100644
--- a/snippets/python-mode/script
+++ b/templates/snippets/python-mode/script