mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-17 10:06:13 +00:00
890f78904a
* lisp/emacs-lisp: * emacs-lisp/eieio.el (eieio--defalias, eieio-hook) (eieio-error-unsupported-class-tags, eieio-skip-typecheck) (eieio-optimize-primary-methods-flag, eieio-initializing-object) (eieio-unbound, eieio-default-superclass) (eieio--define-field-accessors, method-static, method-before) (method-primary, method-after, method-num-lists) (method-generic-before, method-generic-primary) (method-generic-after, method-num-slots) (eieio-specialized-key-to-generic-key) (eieio--check-type, class-v, class-p) (eieio-class-name, define-obsolete-function-alias) (eieio-class-parents-fast, eieio-class-children-fast) (same-class-fast-p, class-constructor, generic-p) (generic-primary-only-p, generic-primary-only-one-p) (class-option-assoc, class-option, eieio-object-p) (class-abstract-p, class-method-invocation-order) (eieio-defclass-autoload-map, eieio-defclass-autoload) (eieio-class-un-autoload, eieio-defclass) (eieio-eval-default-p, eieio-perform-slot-validation-for-default) (eieio-add-new-slot, eieio-copy-parents-into-subclass) (eieio--defgeneric-init-form, eieio-defgeneric-form) (eieio-defgeneric-reset-generic-form) (eieio-defgeneric-form-primary-only) (eieio-defgeneric-reset-generic-form-primary-only) (eieio-defgeneric-form-primary-only-one) (eieio-defgeneric-reset-generic-form-primary-only-one) (eieio-unbind-method-implementations) (eieio--defmethod, eieio--typep) (eieio-perform-slot-validation, eieio-validate-slot-value) (eieio-validate-class-slot-value, eieio-barf-if-slot-unbound) (eieio-oref, eieio-oref-default, eieio-default-eval-maybe) (eieio-oset, eieio-oset-default, eieio-slot-originating-class-p) (eieio-slot-name-index, eieio-class-slot-name-index) (eieio-set-defaults, eieio-initarg-to-attribute) (eieio-attribute-to-initarg, eieio-c3-candidate) (eieio-c3-merge-lists, eieio-class-precedence-c3) (eieio-class-precedence-dfs, eieio-class-precedence-bfs) (eieio-class-precedence-list, eieio-generic-call-methodname) (eieio-generic-call-arglst, eieio-generic-call-key) (eieio-generic-call-next-method-list) (eieio-pre-method-execution-functions, eieio-generic-call) (eieio-generic-call-primary-only, eieiomt-method-list) (eieiomt-optimizing-obarray, eieiomt-install) (eieiomt-add, eieiomt-next, eieiomt-sym-optimize) (eieio-generic-form, eieio-defmethod, make-obsolete) (eieio-defgeneric, make-obsolete): Moved to eieio-core.el (defclass): Remove `eval-and-compile' from macro. (call-next-method, shared-initialize): Instead of using `scoped-class' variable, use new eieio--scoped-class, and eieio--with-scoped-class. (initialize-instance): Rename local variable 'scoped-class' to 'this-class' to remove ambiguitity from old global. * emacs-lisp/eieio-core.el: New file. Derived from key parts of eieio.el. (eieio--scoped-class-stack): New variable (eieio--scoped-class): New fcn (eieio--with-scoped-class): New scoping macro. (eieio-defclass): Use pushnew instead of add-to-list. (eieio-defgeneric-form-primary-only-one, eieio-oset-default) (eieio-slot-name-index, eieio-set-defaults, eieio-generic-call) (eieio-generic-call-primary-only, eieiomt-add): Instead of using `scoped-class' variable, use new eieio--scoped-class, and eieio--with-scoped-class. * emacs-lisp/eieio-base.el (cl-lib): Require during compile. * admin/grammars: * grammars/srecode-template.wy (variable): Accept a single number as a variable value. Allows the 'priority' to be set to a number. (wisent-srecode-template-lexer): Move number up so it can be created. * etc/srecode: * srecode/c.srt (header_guard): Add :c parameter so it works standalone * lisp/cedet: * semantic/edit.el (semantic-change-function): Use `save-match-data' around running hooks. * semantic/decorate/mode.el (semantic-decorate-style-predicate-default) (semantic-decorate-style-highlighter-default): New. (semantic-decoration-mode): Do not require `semantic/decorate/include' anymore. (semantic-toggle-decoration-style): Error if an unknown decoration style is toggled. (define-semantic-decoration-style): Add new :load option. When :load is specified, add autoload tokens for the definition functions so that code is loaded when the mode is used. (semantic-decoration-on-includes): New autoload definition for highlighting includes. * semantic/bovine/c.el (semantic-lex-c-ifdef): Allow some misc characters to appear after the tested variable. * semantic/ede-grammar.el (project-compile-target): Calculate full src name via ede-expand-filename instead of the crutch of the current buffer. Enables this target to compile in batch mode. * semantic/idle.el (semantic-idle-symbol-maybe-highlight): Wrap highlighting of remote symbol with `save-excursion'. (semantic-idle-scheduler-work-parse-neighboring-files): Instead of using directory-files on each found mode pattern, collect all the patterns for the current mode, and then for each file, see if it matches any of them. If it does, parse the file. (Patch inspiration from Tomasz Gajewski.) * semantic/ctxt.el (semantic-ctxt-end-of-symbol): New. (semantic-ctxt-current-symbol-default): New. * semantic/bovine/el.el (semantic-default-elisp-setup): Add autoload cookie. Explain existence. (footer): Add local variable for loaddefs. * semantic/db.el (semanticdb-file-table-object): Add new filter, only checking for regular files too. * semantic/wisent/python.el (semantic-format-tag-abbreviate): New override. Cuts back on size of code tags. * srecode/compile.el (srecode-compile-templates): Fix warning punctuation. Remove status messages to clean up testing output * ede/base.el (ede-project-placeholder-cache-file): Update doc to mention 'nil' value. (ede-save-cache): Disable cache save if file is nil. * ede.el (ede-initialize-state-current-buffer): Flush deleted projects. (global-ede-mode): Always append our find-file-hook to the end. (ede-flush-deleted-projects): New command. * ede/cpp-root.el (ede-preprocessor-map): Protect against init problems. * ede/proj.el (ede-proj-target): Added a new "custom" option for custom symbols representing a compiler or linker instead of restricting things to only the predefined compilers and linkers. * semantic.el (semantic-mode-map): To avoid showing showing Development menu twice, only disable menu item if menu-bar is actually enabled, otherwise the popup 'global menu' might display a disabled Development menu. * semantic/complete.el (semantic-displayor-show-request): Fix which slot in obj is set to the max tags.
165 lines
3.1 KiB
Plaintext
165 lines
3.1 KiB
Plaintext
;;; c.srt --- SRecode templates for c-mode
|
||
|
||
;; Copyright (C) 2007-2010, 2012-2013 Free Software Foundation, Inc.
|
||
|
||
;; Author: Eric M. Ludlam <eric@siege-engine.com>
|
||
|
||
;; This file is part of GNU Emacs.
|
||
|
||
;; GNU Emacs 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.
|
||
|
||
;; GNU Emacs 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||
|
||
set mode "c-mode"
|
||
|
||
set comment_start "/**"
|
||
set comment_end " */"
|
||
set comment_prefix " *"
|
||
|
||
;; OVERRIDE THIS in your user or project template file to whatever
|
||
;; you use for your project.
|
||
set HEADEREXT ".h"
|
||
|
||
context file
|
||
|
||
template empty :time :user :file :c
|
||
----
|
||
{{>:filecomment}}
|
||
|
||
{{#NOTHEADER}}
|
||
|
||
{{^}}
|
||
{{/NOTHEADER}}
|
||
{{#HEADER}}
|
||
{{>:header_guard}}
|
||
{{/HEADER}}
|
||
----
|
||
|
||
template header_guard :file :blank :c
|
||
----
|
||
#ifndef {{FILENAME_SYMBOL:upcase}}
|
||
#define {{FILENAME_SYMBOL:upcase}} 1
|
||
|
||
{{^}}
|
||
|
||
#endif // {{FILENAME_SYMBOL:upcase}}
|
||
----
|
||
|
||
context misc
|
||
|
||
template arglist
|
||
"Insert an argument list for a function.
|
||
@todo - Support smart CR in a buffer for not too long lines."
|
||
----
|
||
({{#ARGS}}{{TYPE}} {{NAME}}{{#NOTLAST}},{{/NOTLAST}}{{/ARGS}})
|
||
----
|
||
|
||
context declaration
|
||
|
||
prompt TYPE "Return Type: "
|
||
|
||
template function :indent :blank
|
||
"Insert a function declaration."
|
||
----
|
||
{{?TYPE}} {{?NAME}}{{>:misc:arglist}}
|
||
{{#INITIALIZERS}}{{>B:initializers}}{{/INITIALIZERS}}
|
||
{
|
||
{{^}}
|
||
}
|
||
----
|
||
bind "f"
|
||
|
||
template function-prototype :indent :blank
|
||
"Insert a function declaration."
|
||
----
|
||
{{?TYPE}} {{?NAME}}{{>:misc:arglist}};
|
||
----
|
||
|
||
|
||
prompt TYPE "Data Type: "
|
||
|
||
template variable :indent :blank
|
||
"Insert a variable declaration."
|
||
----
|
||
{{?TYPE}} {{?NAME}}{{#HAVEDEFAULT}} = {{DEFAULT}}{{/HAVEDEFAULT}};
|
||
----
|
||
bind "v"
|
||
|
||
template variable-prototype :indent :blank
|
||
"Insert a variable declaration."
|
||
----
|
||
{{?TYPE}} {{?NAME}};
|
||
----
|
||
bind "v"
|
||
|
||
|
||
template include :blank
|
||
"An include statement."
|
||
----
|
||
#include "{{?NAME}}"
|
||
----
|
||
bind "i"
|
||
|
||
template system-include :blank
|
||
"An include statement."
|
||
----
|
||
#include <{{?NAME}}>
|
||
----
|
||
bind "i"
|
||
|
||
template label :blank :indent
|
||
----
|
||
{{?NAME}}:
|
||
----
|
||
|
||
context declaration
|
||
|
||
template comment-function :indent :blank
|
||
"Used to put a nice comment in front of a function.
|
||
Override this with your own preference to avoid using doxygen"
|
||
----
|
||
{{>A:declaration:doxygen-function}}
|
||
----
|
||
|
||
;;; DOXYGEN FEATURES
|
||
;;
|
||
;;
|
||
context declaration
|
||
|
||
template doxygen-function :indent :blank
|
||
----
|
||
/**
|
||
* @name {{NAME}} - {{DOC}}{{^}}{{#ARGS}}
|
||
* @param {{NAME}} - {{DOC}}{{/ARGS}}
|
||
* @return {{TYPE}}
|
||
*/
|
||
----
|
||
|
||
template doxygen-variable-same-line
|
||
----
|
||
/**< {{DOC}}{{^}} */
|
||
----
|
||
|
||
template doxygen-section-comment :blank :indent
|
||
"Insert a comment that separates sections of an Emacs Lisp file."
|
||
----
|
||
|
||
/** {{?TITLE}}
|
||
*
|
||
* {{^}}
|
||
*/
|
||
|
||
----
|
||
|
||
|
||
;; end
|