2015-06-10 16:44:30 +00:00
|
|
|
#+TITLE: Semantic contribution layer for Spacemacs
|
2015-11-08 18:04:44 +00:00
|
|
|
#+HTML_HEAD_EXTRA: <link rel="stylesheet" type="text/css" href="../../css/readtheorg.css" />
|
2015-06-10 16:44:30 +00:00
|
|
|
|
|
|
|
* Description
|
|
|
|
|
2015-06-10 21:16:01 +00:00
|
|
|
CEDET is a *C*ollection of *E*macs *D*evelopment *E*nvironment *T*ools written
|
|
|
|
with the end goal of creating an advanced development environment in Emacs.
|
|
|
|
CEDET includes common features such as intelligent completion, source code
|
|
|
|
navigation, project management, code generation with templates. CEDET also
|
2015-06-10 16:44:30 +00:00
|
|
|
provides a framework for working with programming languages; support for new
|
|
|
|
programming languages can be added and use CEDET to provide IDE-like features.
|
|
|
|
This framework is called Semantic.
|
|
|
|
|
|
|
|
Semantic is a package that provides a framework for writing parsers. Parsing is
|
|
|
|
a process of analyzing source code based on programming language syntax. The
|
|
|
|
packages relies on Semantic for analyzing source code and uses its results to
|
|
|
|
perform smart code refactoring that based on code structure of the analyzed
|
|
|
|
language, instead of plain text structure. Semantic is the core of CEDET.
|
|
|
|
|
|
|
|
* Features
|
|
|
|
|
|
|
|
- Display function or variable definition at the bottom.
|
|
|
|
- Display current function cursor is in at the top. See
|
|
|
|
[[https://github.com/tuhdo/semantic-stickyfunc-enhance][this page]] for demos in some programming languages.
|
|
|
|
- Support common C/C++ refactoring with [[https://github.com/tuhdo/semantic-refactor][semantic-refactor]]. See
|
|
|
|
[[https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos.org][this page]] for demonstration of refactoring features.
|
|
|
|
- Support Lisp source code formatting with [[https://github.com/tuhdo/semantic-refactor][semantic-refactor]].. See
|
|
|
|
[[https://github.com/tuhdo/semantic-refactor/blob/master/srefactor-demos/demos-elisp.org][this page]] for demonstration of Lisp formatting
|
|
|
|
features.
|
|
|
|
|
|
|
|
* Install
|
|
|
|
|
|
|
|
To use this contribution add it to your =~/.spacemacs=
|
|
|
|
|
|
|
|
#+BEGIN_SRC emacs-lisp
|
|
|
|
(setq-default dotspacemacs-configuration-layers '(semantic))
|
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
* Key Bindings
|
|
|
|
|
|
|
|
| Key Binding | Description |
|
|
|
|
|-------------+-------------------------------------|
|
|
|
|
| ~SPC m r~ | srefactor: refactor thing at point. |
|