src.nth.io/

summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/c-init.el49
-rw-r--r--lisp/hoersten-c-style.el36
-rw-r--r--lisp/move-line.el27
3 files changed, 112 insertions, 0 deletions
diff --git a/lisp/c-init.el b/lisp/c-init.el
new file mode 100644
index 0000000..8bcb172
--- /dev/null
+++ b/lisp/c-init.el
@@ -0,0 +1,49 @@
+;; ~/.emacs.d/c-hook.el
+;; Luke Hoersten <[email protected]>
+
+(require 'hoersten-c-style)
+
+(add-hook
+ 'c-mode-common-hook
+ (lambda ()
+ ;; indentation
+ (setq
+ tab-width 3
+ c-basic-offset 3
+ indent-tabs-mode t
+ standard-indent 3
+ whitespace-line-column 120)
+
+ (setq
+ compile-command "scons "
+ c-hungry-delete-key t)
+
+ (c-toggle-auto-newline t) ; auto newline
+ (c-subword-mode t)
+
+ ;; custom keys
+ (local-set-key (kbd "C-c f") 'ff-find-other-file) ; toggle header/source file
+
+ ;; ;; code folding
+ ;; (local-set-key (kbd "C-c v") 'hs-toggle-hiding)
+ ;; (local-set-key (kbd "<f1>") 'hs-hide-all)
+ ;; (local-set-key (kbd "<f2>") 'hs-show-all)
+ ;; (hs-minor-mode t) ; enable hide-show mode
+
+ ;; gdb settings
+ (setq
+ gdb-many-windows t ; gdb many windows
+ gdb-use-separate-io-buffer t ; gdb stdio output
+ gud-tooltip-mode t) ; mouse hover variables
+ (local-set-key (kbd "C-c g") 'gdb) ; gdb
+
+ ;; auto-close bracing
+ (setq parens-require-spaces nil)
+ (dolist (key '("(" "[")) (define-key (current-local-map) key 'insert-pair))
+ ))
+
+(add-to-list 'auto-mode-alist '("\\.ipp$" . c++-mode))
+(add-to-list 'auto-mode-alist '("\\.inl$" . c++-mode))
+
+(message "Loading c-init...done")
+(provide 'c-init)
diff --git a/lisp/hoersten-c-style.el b/lisp/hoersten-c-style.el
new file mode 100644
index 0000000..043a499
--- /dev/null
+++ b/lisp/hoersten-c-style.el
@@ -0,0 +1,36 @@
+;; ~/.emacs.d/hoersten-c-style.el
+;; Luke Hoersten <[email protected]>
+
+;; hoersten c++-style
+(c-add-style
+ "hoersten"
+ '(;; indentation
+ (indent-tabs-mode . t)
+ (tab-width . 3)
+ (c-basic-offset . 3)
+
+ ;; brace cleanups
+ (c-cleanup-list
+ brace-else-brace
+ brace-elseif-brace
+ brace-catch-brace
+ empty-defun-braces
+ defun-close-semi
+ list-close-comma
+ scope-operator)
+
+ ;; syntactic symbols
+ (c-offsets-alist
+ (substatement-open . 0)
+ (inline-open . 0)
+ (case-label . +)
+ (innamespace . 0)
+ (arglist-cont-nonempty . +)
+ (cpp-macro . -))))
+
+;; c-like language settings (c, c++, java, etc.)
+;;(require 'doxymacs)
+(setq-default c-default-style "hoersten") ; load c-style
+
+(message "Loading hoersten-c-style...done")
+(provide 'hoersten-c-style)
diff --git a/lisp/move-line.el b/lisp/move-line.el
new file mode 100644
index 0000000..7986715
--- /dev/null
+++ b/lisp/move-line.el
@@ -0,0 +1,27 @@
+;; http://www.emacswiki.org/emacs/MoveLine
+
+(defun move-line (n)
+ "Move the current line up or down by N lines."
+ (interactive "p")
+ (setq col (current-column))
+ (beginning-of-line) (setq start (point))
+ (end-of-line) (forward-char) (setq end (point))
+ (let ((line-text (delete-and-extract-region start end)))
+ (forward-line n)
+ (insert line-text)
+ ;; restore point to original column in moved line
+ (forward-line -1)
+ (forward-char col)))
+
+(defun move-line-up (n)
+ "Move the current line up by N lines."
+ (interactive "p")
+ (move-line (if (null n) -1 (- n))))
+
+(defun move-line-down (n)
+ "Move the current line down by N lines."
+ (interactive "p")
+ (move-line (if (null n) 1 n)))
+
+(message "Loading move-line...done")
+(provide 'move-line)