---
title: Custom Language Support Tutorial
---

In this tutorial we will add basic support for
[.properties](https://en.wikipedia.org/wiki/.properties)
language and it's usages within Java code.

We will generate parser and PSI elements using
[Grammar-Kit](https://github.com/JetBrains/Grammar-Kit) plugin.
The lexer class will be generated with
[JFlex](http://jflex.de/).

This a step-by-step tutorial and it requires performing every step:

*  [1. Prerequisites](custom_language_support/prerequisites.md)
*  [2. Language and File Type](custom_language_support/language_and_filetype.md)
*  [3. Grammar and Parser](custom_language_support/grammar_and_parser.md)
*  [4. Lexer and Parser Definition](custom_language_support/lexer_and_parser_definition.md)
*  [5. Syntax Highlighter and Color Settings Page](custom_language_support/syntax_highlighter_and_color_settings_page.md)
*  [6. PSI Helpers and Utilities](custom_language_support/psi_helper_and_utilities.md)
*  [7. Annotator](custom_language_support/annotator.md)
*  [8. Line Marker Provider](custom_language_support/line_marker_provider.md)
*  [9. Completion Contributor](custom_language_support/completion_contributor.md)
*  [10. Reference Contributor](custom_language_support/reference_contributor.md)
*  [11. Find Usages Provider](custom_language_support/find_usages_provider.md)
*  [12. Folding Builder](custom_language_support/folding_builder.md)
*  [13. Go To Symbol Contributor](custom_language_support/go_to_symbol_contributor.md)
*  [14. Structure View Factory](custom_language_support/structure_view_factory.md)
*  [15. Formatter](custom_language_support/formatter.md)
*  [16. Code Style Settings](custom_language_support/code_style_settings.md)
*  [17. Commenter](custom_language_support/commenter.md)
*  [18. Quick Fix](custom_language_support/quick_fix.md)

The final code can be found in the [SamplePlugin repo on GitHub](https://github.com/JetBrains/intellij-sdk-docs/tree/master/code_samples/simple_language_plugin).