c/c++: fix < > delimiters; add highlight-numbers-mode
This commit is contained in:
parent
4a7b0fc96c
commit
940a50a6fa
2 changed files with 41 additions and 32 deletions
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun narf|init-c/c++-settings ()
|
(defun narf|init-c/c++-settings ()
|
||||||
|
(when (memq major-mode '(c-mode c++-mode objc-mode))
|
||||||
(c-toggle-electric-state -1)
|
(c-toggle-electric-state -1)
|
||||||
(c-toggle-auto-newline -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 'substatement-open '0) ; brackets should be at same indentation level as the statements they open
|
||||||
|
@ -38,8 +39,8 @@
|
||||||
(define-key c++-mode-map "}" nil)
|
(define-key c++-mode-map "}" nil)
|
||||||
;; FIXME: fix smartparens
|
;; FIXME: fix smartparens
|
||||||
;; (define-key c++-mode-map ">" nil)
|
;; (define-key c++-mode-map ">" nil)
|
||||||
(map! :map c++-mode-map :i ">" 'narf/autoclose->-maybe)
|
(map! :map (c-mode-base-map c++-mode-map) :i ">" 'narf/autoclose->-maybe)
|
||||||
(define-key c++-mode-map "<" nil))
|
(define-key c++-mode-map "<" nil)))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun narf/autoclose->-maybe ()
|
(defun narf/autoclose->-maybe ()
|
||||||
|
@ -127,5 +128,12 @@
|
||||||
(and (sp-in-code-p id action context)
|
(and (sp-in-code-p id action context)
|
||||||
(sp-point-after-word-p id action context)))
|
(sp-point-after-word-p id action context)))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun narf/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)
|
(provide 'defuns-cc)
|
||||||
;;; defuns-cc.el ends here
|
;;; defuns-cc.el ends here
|
||||||
|
|
|
@ -21,16 +21,17 @@
|
||||||
:commands (c-mode c++-mode objc-mode java-mode)
|
:commands (c-mode c++-mode objc-mode java-mode)
|
||||||
:init
|
:init
|
||||||
(associate! objc-mode :match "\\.mm$")
|
(associate! objc-mode :match "\\.mm$")
|
||||||
(add-hook! (c-mode c++-mode) '(narf|init-c/c++-settings))
|
(add-hook 'c-initialization-hook 'narf|init-c/c++-settings)
|
||||||
|
(add-hook 'c++-mode-hook 'highlight-numbers-mode)
|
||||||
:config
|
:config
|
||||||
(setq c-tab-always-indent nil
|
(setq c-tab-always-indent nil
|
||||||
c-electric-flag nil)
|
c-electric-flag nil)
|
||||||
|
|
||||||
(map! (:map c-mode-base-map
|
(map! (:map c-mode-base-map
|
||||||
(:localleader
|
(:localleader :nv ";" 'narf/append-semicolon)))
|
||||||
:nv ";" 'narf/append-semicolon)))
|
|
||||||
|
|
||||||
(sp-local-pair 'c++-mode "<" ">" :when '(narf/sp-point-is-template-p))
|
(define-text-object! "<" "<" ">")
|
||||||
|
(sp-local-pair '(c-mode c++-mode) "<" ">" :when '(narf/sp-point-is-template-p narf/sp-point-after-include-p))
|
||||||
(sp-with-modes '(c-mode c++-mode objc-mode java-mode)
|
(sp-with-modes '(c-mode c++-mode objc-mode java-mode)
|
||||||
(sp-local-pair "/*" "*/" :post-handlers '(("||\n[i]" "RET") ("| " "SPC")))
|
(sp-local-pair "/*" "*/" :post-handlers '(("||\n[i]" "RET") ("| " "SPC")))
|
||||||
;; Doxygen blocks
|
;; Doxygen blocks
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue