diff --git a/topics/reference_guide/custom_language_support/syntax_highlighting_and_error_highlighting.md b/topics/reference_guide/custom_language_support/syntax_highlighting_and_error_highlighting.md index a2442cbeb0d..1ee93023f69 100644 --- a/topics/reference_guide/custom_language_support/syntax_highlighting_and_error_highlighting.md +++ b/topics/reference_guide/custom_language_support/syntax_highlighting_and_error_highlighting.md @@ -16,15 +16,17 @@ The syntax and error highlighting are performed on multiple levels: [](#lexer), ## TextAttributesKey -The class used to specify how a particular range of text should be highlighted is called [`TextAttributesKey`](%gh-ic%/platform/core-api/src/com/intellij/openapi/editor/colors/TextAttributesKey.java). -An instance of this class is created for every distinct type of item that should be highlighted (keyword, number, string, etc.). +How a particular range of text should be highlighted is defined via [`TextAttributesKey`](%gh-ic%/platform/core-api/src/com/intellij/openapi/editor/colors/TextAttributesKey.java). +An instance of this class is created for every distinct type of item that should be highlighted (keyword, number, string literal, etc.). -The `TextAttributesKey` defines the default attributes applied to items of the corresponding type (for example, keywords are bold, numbers are blue, strings are bold and green). +The `TextAttributesKey` defines the default attributes applied to items of the corresponding type (for example, keywords are bold, numbers are blue, string literals are bold and green). Highlighting from multiple `TextAttributesKey` items can be layered — for example, one key may define an item's boldness and another one its color. -> To inspect applied `TextAttributesKey`(s) for the element at the caret, use Jump to Colors and Fonts action. +> To inspect applied `TextAttributesKey`(s) in the editor for the element at the caret, use Jump to Colors and Fonts action. > > The underlying `TextAttributeKey`'s external name for items in Settings | Editor | Color Scheme can be inspected using [UI Inspector](internal_ui_inspector.md#inspecting-settings). +> +{title="Looking up existing TextAttributeKey"} ## Color Settings @@ -48,7 +50,7 @@ Thus, it will work automatically for custom languages that provide a syntax high The first syntax highlighting level is based on the lexer output and is provided through the [`SyntaxHighlighter`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighter.java) interface. The syntax highlighter returns the `TextAttributesKey` instances for each token type, which needs special highlighting. -For highlighting lexer errors, the standard `TextAttributesKey` for bad characters [`HighlighterColors.BAD_CHARACTER`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/editor/HighlighterColors.java) can be used. +For highlighting lexer errors [`HighlighterColors.BAD_CHARACTER`](%gh-ic%/platform/editor-ui-api/src/com/intellij/openapi/editor/HighlighterColors.java) should be used. **Examples:** @@ -57,6 +59,7 @@ For highlighting lexer errors, the standard `TextAttributesKey` for bad characte > Use [`HtmlSyntaxInfoUtil`](%gh-ic%/platform/lang-impl/src/com/intellij/openapi/editor/richcopy/HtmlSyntaxInfoUtil.java) to create Lexer-based highlighted code samples, e.g. for usage in documentation. > +{title="Creating highlighted code sample"} ### Semantic Highlighting @@ -160,5 +163,5 @@ To enable running `ExternalAnnotator` during indexing in [](indexing_and_psi_stu Existing highlighting can be suppressed programmatically in certain contexts, see [](controlling_highlighting.md). -To force re-highlighting (e.g., after changing plugin specific settings), use +To force re-highlighting all open or specific file(s) (e.g., after changing plugin specific settings), use [`DaemonCodeAnalyzer.restart()`](%gh-ic%/platform/analysis-api/src/com/intellij/codeInsight/daemon/DaemonCodeAnalyzer.java).