mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-30 10:17:50 +08:00
[md] registering file types separated
This commit is contained in:
parent
2ffbd2faeb
commit
e562dbd8a4
@ -47,7 +47,7 @@
|
||||
* [Testing Highlighting](testing_highlighting.html)
|
||||
* [Advanced Topics](advanced_topics.html)
|
||||
* [Custom Language Support](custom_language_support.html)
|
||||
|
||||
* [Registering File Type](registering_file_type.html)
|
||||
* [XML DOM API](xml_dom_api.html)
|
||||
* [Spring API](spring_api.html)
|
||||
* [VCS Integration Plugins](vcs_integration_for_plugins.html)
|
||||
|
@ -17,30 +17,10 @@ source code.
|
||||
If you prefer a full example to the detailed description offered on this page, please check out a step-by-step tutorial how to define custom language support on example of ".properties" files:
|
||||
[Custom Language Support Tutorial](cls_tutorial.html)
|
||||
|
||||
Providing custom language support includes the following major steps:
|
||||
|
||||
## Registering a File Type
|
||||
* [Registering File Type](registering_file_type.html)
|
||||
|
||||
The first step in developing a custom language plugin is registering a file type the language will be associated with.
|
||||
The IDE normally determines the type of a file by looking at its file name.
|
||||
|
||||
A custom language file type is a class derived from
|
||||
[LanguageFileType](https://github.com/JetBrains/intellij-community/blob/master/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java),
|
||||
which passes a
|
||||
[Language](https://github.com/JetBrains/intellij-community/blob/master/platform/core-api/src/com/intellij/lang/Language.java)
|
||||
implementation class to its base class constructor.
|
||||
To register a file type, the plugin developer provides an implementation of the
|
||||
[FileTypeFactory](https://github.com/JetBrains/intellij-community/blob/master/platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeFactory.java)
|
||||
interface, which is registered via the ```com.intellij.fileTypeFactory```
|
||||
[platform extension point](https://github.com/JetBrains/intellij-community/blob/master/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml).
|
||||
|
||||
**Example**:
|
||||
[LanguageFileType](https://github.com/JetBrains/intellij-community/blob/master/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java)
|
||||
implementation in
|
||||
[Properties language plugin](https://github.com/JetBrains/intellij-community/blob/master/plugins/properties/properties-psi-api/src/com/intellij/lang/properties/PropertiesFileType.java)
|
||||
|
||||
To verify that the file type is registered correctly, you can implement the
|
||||
[LanguageFileType.getIcon()](https://github.com/JetBrains/intellij-community/blob/master/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java)
|
||||
method and verify that the correct icon is displayed for files which have the extension(s) associated with your file type.
|
||||
|
||||
## Implementing a Lexer
|
||||
|
||||
|
26
registering_file_type.md
Normal file
26
registering_file_type.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
layout: editable
|
||||
title: Registering a File Type
|
||||
---
|
||||
|
||||
The first step in developing a custom language plugin is registering a file type the language will be associated with.
|
||||
The IDE normally determines the type of a file by looking at its file name.
|
||||
|
||||
A custom language file type is a class derived from
|
||||
[LanguageFileType](https://github.com/JetBrains/intellij-community/blob/master/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java),
|
||||
which passes a
|
||||
[Language](https://github.com/JetBrains/intellij-community/blob/master/platform/core-api/src/com/intellij/lang/Language.java)
|
||||
implementation class to its base class constructor.
|
||||
To register a file type, the plugin developer provides an implementation of the
|
||||
[FileTypeFactory](https://github.com/JetBrains/intellij-community/blob/master/platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeFactory.java)
|
||||
interface, which is registered via the ```com.intellij.fileTypeFactory```
|
||||
[platform extension point](https://github.com/JetBrains/intellij-community/blob/master/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml).
|
||||
|
||||
**Example**:
|
||||
[LanguageFileType](https://github.com/JetBrains/intellij-community/blob/master/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java)
|
||||
implementation in
|
||||
[Properties language plugin](https://github.com/JetBrains/intellij-community/blob/master/plugins/properties/properties-psi-api/src/com/intellij/lang/properties/PropertiesFileType.java)
|
||||
|
||||
To verify that the file type is registered correctly, you can implement the
|
||||
[LanguageFileType.getIcon()](https://github.com/JetBrains/intellij-community/blob/master/platform/core-api/src/com/intellij/openapi/fileTypes/LanguageFileType.java)
|
||||
method and verify that the correct icon is displayed for files which have the extension(s) associated with your file type.
|
Loading…
x
Reference in New Issue
Block a user