diff options
author | Dan Winship <danw@redhat.com> | 2015-08-09 10:52:10 -0400 |
---|---|---|
committer | Dan Winship <danw@redhat.com> | 2015-08-09 10:52:10 -0400 |
commit | 77b5e61851667bc8154acce2d72e6e26238b2af7 (patch) | |
tree | 0e301dcdb916255574e4ca635699a6aa96a07c9e | |
parent | 578e5e53c0882717a76d4d5496364b087999c234 (diff) | |
download | NetworkManager-danw/emacs-bgo753411.tar.gz |
contrib: add emacs config for hacking on NMdanw/emacs-bgo753411
-rw-r--r-- | contrib/emacs/networkmanager-style.el | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/contrib/emacs/networkmanager-style.el b/contrib/emacs/networkmanager-style.el new file mode 100644 index 0000000000..79d96e6891 --- /dev/null +++ b/contrib/emacs/networkmanager-style.el @@ -0,0 +1,60 @@ +;;; Emacs support for hacking on NetworkManager + +(c-add-style "NetworkManager" + '( + ; Start with the "bsd" style + "bsd" + + ; ...but remove the rule saying labels must be indented at + ; least one space + (c-label-minimum-indentation . 0) + + ; 4-space tabs + (c-basic-offset . 4) + + ; Use smart-tabs-mode (see below) to get tabs for indentation + ; but spaces for alignment of continuation lines. + (smart-tabs-mode . t) + + ; Multi-line "if" conditions are indented like this: + ; if ( foo + ; && bar) + ; (You have to add the spaces on the first line yourself, but + ; this will make emacs align the "&&" correctly.) + (c-offsets-alist (arglist-cont-nonempty . (nm-lineup-arglist)) + (arglist-close . (nm-lineup-arglist))) + + ; NM's comments use two spaces after a period and are + ; (generally) wrapped at 80 characters + (sentence-end-double-space . t) + (fill-column . 80) + )) + +;; http://www.emacswiki.org/emacs/SmartTabs +(require 'smart-tabs-mode) + +;; The smart-tabs-mode documentation tells you to use +;; smart-tabs-insinuate to set it up, but that will cause it to be +;; enabled for *all* C code. We only want to enable it for +;; NetworkManager, so we have to manually set it up first. +(smart-tabs-advice c-indent-line c-basic-offset) +(smart-tabs-advice c-indent-region c-basic-offset) + + +;; Implements the weird "if" alignment +(defun nm-lineup-arglist (langelem) + (save-excursion + (back-to-indentation) + (c-go-up-list-backward) + (vector (+ (current-column) 1)))) + + +(dir-locals-set-class-variables 'nm '((c-mode . ((c-file-style . "NetworkManager"))))) + +;; Now add a line like the following for every directory where you want the +;; "NetworkManager" style to be the default + +; (dir-locals-set-directory-class "/home/danw/gnome/NetworkManager/" 'nm) +; (dir-locals-set-directory-class "/home/danw/gnome/network-manager-applet/" 'nm) + +(provide 'networkmanager-style) |