intellij-sdk-code-samples/reference_guide/custom_language_support.md
Daniil Ovchinnikov 5d32cbcfeb
Symbol API part 1 (#317)
* LAB-21 Symbols, Declarations and References, Completion 2020.3

* LAB-21 Go to Declaration or Usages 2020.3

* fixes (squash with LAB-21 Symbols, Declarations and References, Completion 2020.3)

* fixes (squash with LAB-21 Go to Declaration or Usages 2020.3)

* new PsiCompletableReference location (squash with LAB-21 Symbols, Declarations and References, Completion 2020.3)

* Apply suggestions from code review

Co-authored-by: John Hake <39627202+JohnHake@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: John Hake <39627202+JohnHake@users.noreply.github.com>

* "Own reference", "External reference", "Implicit reference"

* move examples before api links

* IDE -> IntelliJ Platform

* articles

* explicit upsource link

* linebreaks

* element -> symbol

* remove jvm package example

* parent links (squash with LAB-21 Symbols, Declarations and References, Completion 2020.3)

* parent links (squash with LAB-21 Go to Declaration or Usages 2020.3)

* platform -> IntelliJ Platform

* reword symbol navigation a bit

Co-authored-by: John Hake <39627202+JohnHake@users.noreply.github.com>
2020-09-21 17:04:27 +02:00

3.4 KiB

title
Custom Language Support

IntelliJ Platform is a powerful platform for building development tools targeting any language. Most of the IDE features consist of language-independent (provided by the platform) and language-specific parts. Supporting a particular feature for a new language can be achieved with a small amount of effort: a plugin must implement only the language-specific part.

This part of the documentation explains the main concepts of the Language API and guides you through the sequence of steps that are usually required to develop a custom language plugin. You can obtain additional information about the Language API from the JavaDoc comments for the Language API classes and from the source code of the Properties language support, which is part of the IntelliJ IDEA Community Edition source code.

If you prefer a full example to the detailed descriptions offered in this section, please check out a step-by-step tutorial on how to create custom language support for Simple Language: Custom Language Support Tutorial. Corresponding steps from the tutorial are linked under "Examples" section on each page of this reference.

The webinar How We Built Comma, the Raku IDE, on the IntelliJ Platform offers an excellent introduction as well.

Providing custom language support includes the following major steps: