mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-30 18:27:49 +08:00
Updated "Rename Refactoring" article (#779)
This commit is contained in:
parent
448efed747
commit
8f0b0267ed
@ -14,6 +14,9 @@ See [GitHub Changelog](https://github.com/JetBrains/intellij-sdk-docs/commits/ma
|
||||
|
||||
### May-22
|
||||
|
||||
Rename Refactoring
|
||||
: Add [](rename_refactoring.md) paragraphs mentioning `RenameInputValidator` and `RenameInputValidatorEx`.
|
||||
|
||||
Decorating Project View Nodes
|
||||
: Add small section to [](project_view.md) describing how to modify the representation of nodes in the project view.
|
||||
|
||||
|
@ -24,6 +24,27 @@ Implementations of `NamesValidator` are registered in the `com.intellij.lang.nam
|
||||
**Example**:
|
||||
[`PropertiesNamesValidator`](upsource:///plugins/properties/src/com/intellij/lang/properties/PropertiesNamesValidator.java) for [Properties language plugin](upsource:///plugins/properties)
|
||||
|
||||
Another way to check is
|
||||
[`RenameInputValidator`](upsource:///platform/refactoring/src/com/intellij/refactoring/rename/RenameInputValidator.java),
|
||||
unlike `NamesValidator` it allows you to more flexibly check the entered name for correctness based on the rule defined in the `isInputValid()` method.
|
||||
|
||||
To determine which elements this validator will apply to, override the `getPattern()` method returning the pattern of the element to validate.
|
||||
|
||||
**Example**:
|
||||
[`YAMLAnchorRenameInputValidator`](upsource:///plugins/yaml/src/org/jetbrains/yaml/resolve/YAMLAnchorRenameInputValidator.java) validating YAML language anchor names
|
||||
|
||||
`RenameInputValidator` can be extended to
|
||||
[`RenameInputValidatorEx`](upsource:///platform/refactoring/src/com/intellij/refactoring/rename/RenameInputValidatorEx.java)
|
||||
to override the default error message.
|
||||
The `getErrorMessage()` method should return a custom error message in case of an invalid name, or `null` otherwise.
|
||||
|
||||
Note that `getErrorMessage()` only works if all `RenameInputValidator` accept the new name in `isInputValid()` and the name is a valid identifier for the language of the element.
|
||||
|
||||
**Example**:
|
||||
[`YamlKeyValueRenameInputValidator`](upsource:///plugins/yaml/src/org/jetbrains/yaml/refactoring/rename/YamlKeyValueRenameInputValidator.java) validating YAML language keys
|
||||
|
||||
Implementations of `RenameInputValidator` or `RenameInputValidatorEx` are registered in the `com.intellij.renameInputValidator` extension point.
|
||||
|
||||
### Custom Rename UI and Workflow
|
||||
Further customization of the Rename refactoring processing is possible on multiple levels.
|
||||
Providing a custom implementation of the [`RenameHandler`](upsource:///platform/refactoring/src/com/intellij/refactoring/rename/RenameHandler.java) interface allows you to entirely replace the UI and workflow of the rename refactoring, and also to support renaming something which is not a [`PsiElement`](upsource:///platform/core-api/src/com/intellij/psi/PsiElement.java) at all.
|
||||
|
Loading…
x
Reference in New Issue
Block a user