This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+emacs/semantic
syl20bnr ebe4c60264 Revert "Defer packages by default using use-package-always-defer"
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.

The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
2018-03-03 23:40:10 -05:00
..
config.el Happy New Year 2018! 2018-01-04 02:00:25 -05:00
funcs.el semantic: make it possible to exclude stickyfunc 2018-01-17 23:03:33 -05:00
packages.el Revert "Defer packages by default using use-package-always-defer" 2018-03-03 23:40:10 -05:00
README.org Fix features format in misc README.org's 2017-08-22 21:27:13 +03:00

Semantic layer

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 this page for demos in some programming languages.
  • Support common C/C++ refactoring with semantic-refactor. See this page for demonstration of refactoring features.
  • Support Lisp source code formatting with semantic-refactor.. See 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.