49 lines
2.3 KiB
Org Mode
49 lines
2.3 KiB
Org Mode
#+TITLE: Semantic layer
|
|
|
|
* Table of Contents :TOC_4_gh:noexport:
|
|
- [[#description][Description]]
|
|
- [[#features][Features]]
|
|
- [[#install][Install]]
|
|
- [[#key-bindings][Key Bindings]]
|
|
|
|
* Description
|
|
|
|
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
|
|
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 configuration layer, add it to your =~/.spacemacs=. You will need to
|
|
add =semantic= to the existing =dotspacemacs-configuration-layers= list in this
|
|
file.
|
|
|
|
By default, Spacemacs sets Semantic to parse only file, local and project scope.
|
|
For a different parsing scope, you can customize the variable
|
|
=semanticdb-find-default-throttle=.
|
|
|
|
* Key Bindings
|
|
|
|
| Key Binding | Description |
|
|
|-------------+-------------------------------------|
|
|
| ~SPC m r~ | srefactor: refactor thing at point. |
|