IntelliJ IDEA рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░, рдореБрдЭреЗ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреБрдВрдЬреА рд╕рдВрдпреЛрдЬрди рдХреА рдХрдореА рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдЧреНрд░рд╣рдг - Ctrl + Alt + Up рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЗрд╕ рд╕рдВрдпреЛрдЬрди рджреНрд╡рд╛рд░рд╛, рдкрд╛рда рдпрд╛ рд░реЗрдЦрд╛ рдХреЗ рдЪрдпрдирд┐рдд рдмреНрд▓реЙрдХ рдХреЛ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд░реНрд╕рд░ рдХреЗ рд╕рд╛рде рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Ctrl + D рдкрд░ рдЖрдЗрдбрд┐рдпрд╛ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИ рдЬреЛ рдмреНрд▓реЙрдХ рдбрд╛рдЙрди (рдЧреНрд░рд╣рдг рдореЗрдВ Ctrl + Alt + Down) рдХреЛ рдХреЙрдкреА рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╛рди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЧреБрдЧреНрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рдж, рдкреНрд░рд╢реНрдиреЛрддреНрддрд░ рдореЗрдВ рдПрдХ
рдкреНрд░рд╢реНрди рдкреВрдЫрд╛ рдЧрдпрд╛, рдЬреЛ рдЕрдиреБрддреНрддрд░рд┐рдд рд░рд╣рд╛ред рдЬреЗрдЯрдмреНрд░реЗрдиреНрд╕ рдкрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдиреЗ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдЗрдбрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд▓рдЧрдЗрди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред
рд╢реБрд░реБрдЖрдд
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЖрдИрдбреАрдИ рдХреЗ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧреЗрдЧрд╛, рдХреБрд▓ рдЖрдХрд╛рд░ рд▓рдЧрднрдЧ 1.6 рдЬреАрдмреАред
рдЧреЗрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА:
git://git.jetbrains.org/idea/community.git
рдпрд╣ рдХреНрд░рд┐рдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╡рд╛рдВрдЫрдиреАрдп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ рд╣рдореЗрдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдЬрд╛рд╡рд╛ рдбреЙрдХ рдорд┐рд▓реЗрдВрдЧреЗ рдФрд░ рд╣рдорд╛рд░реА рд░реБрдЪрд┐ рдХреЗ рддрд░реАрдХреЗ, рд╕рд╛рде рд╣реА рд╕рдорд╛рдкреНрдд рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб (рд▓рдЧрднрдЧ рд╕рднреА рдХреЛрдб рдиреАрдЪреЗ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрд╛)ред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ IntelliJ IDEA рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВрдиреЗ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреНрд▓рдЧ-рдЗрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ: рдлрд╝рд╛рдЗрд▓ -> рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ ...
IntelliJ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ

рдпрджрд┐ рдХреЛрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрд╕рдбреАрдХреЗ рдирд╣реАрдВ рд╣реИ, рддреЛ рдирдпрд╛ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ... рдФрд░ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЖрдЗрдбрд┐рдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЬрд╛рд╡рд╛ рдбреЙрдХреНрд╕ рдЬреЛрдбрд╝рдирд╛
рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрджрдоред
IDE рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓ -> рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ... рдФрд░ Sourcepath рдЯреИрдм рдкрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:

рдЕрдм рдкреНрд▓рдЧ-рдЗрди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдФрд░ рдбреАрдмрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдерд╛:

рдпрд╣ рдерд╛:

рдкреНрд▓рдЧрдЗрди рд╕рдВрд░рдЪрдирд╛
рдЖрдк
рдпрд╣рд╛рдБ Idea рдореЗрдВ plugin рдХреЗ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
Idea рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдкреНрд▓рдЧрдЗрди рдПрдХ .jar рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ META-INF рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ plugin.xml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдХреЛрдб рд╣реИред

Plugin.xml рдореЗрдВ рдХреБрдЫ рдбреЗрдЯрд╛ рднрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред
plugin.xml <idea-plugin version="2"> <id>org.idea.plugin.duplicatelines</id> <name>Duplicate lines</name> <version>1.0</version> <vendor email="test@yourcompany.com">mobileDeveloper</vendor> <description><![CDATA[ Plugin for intellij idea to allow copy lines<br> and block of code like Eclipse IDE (Ctrl+Alt+Up and Ctrl+Alt+Down). ]]></description> <idea-version since-build="107.105"/> <actions></actions> <extensions defaultExtensionNs="com.intellij"> </extensions> </idea-plugin>
рдХреНрд░рд┐рдпрд╛
рдЖрдЗрдбрд┐рдпрд╛ рддрдерд╛рдХрдерд┐рдд рдПрдХреНрд╢рди рд╕рд┐рд╕реНрдЯрдо рдЪрд▓рд╛рддрд╛ рд╣реИред рдпрд╣ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдореЗрдиреВ, рдЯреВрд▓рдмрд╛рд░ рдЖрджрд┐ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдмрджрд▓реЗ рдореЗрдВ рдЕрдиреНрдп рд╕рдореВрд╣ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдирдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
IdeActions.java рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ
редрдПрдХреНрд╢рди рдПрдХ рдирд┐рдпрдорд┐рдд рдЬрд╛рд╡рд╛ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдЕрдореВрд░реНрдд AnAction рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рд╣рдо рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ
EditorAction
рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ
EditorAction
ред
рдЧреНрд░рд╛рдл рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрдВрдЯрд░рдлрд╝реЗрд╕: рдЬрдирд╕рдВрдкрд░реНрдХред рдкреИрдХреЗрдЬ рдкрд░ рдорд╛рдЙрд╕ -> рдирдпрд╛ -> рдХрд╛рд░реНрд░рд╡рд╛рдИ:

рдЖрд╡рд╢реНрдпрдХ рд╕рдореВрд╣ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдирдП рдПрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд╕рдВрдпреЛрдЬрди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ,
AnAction
рдХреНрд▓рд╛рд╕ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА, рдФрд░ plugin.xml рдореЗрдВ рдПрдХреНрд╢рди рдХреНрд▓рд╛рд╕ рдХрд╛ рд╡рд┐рд╡рд░рдг <рдХрд╛рд░реНрдпреЛрдВ /> рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдПрдХреНрд╢рди рдХреНрд▓рд╛рд╕ рдХреЛ рдирд╛рдо рджреЗрдВ - CopyLineUpActionред
рдЕрдм plugin.xml рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЯреИрдЧ рдХреЗ рдЕрдВрджрд░ рдирд┐рдореНрди рдХреЛрдб рд╣реЛрдЧрд╛:
рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рд╡рд┐рд╡рд░рдг <actions> <action id="CopyLineUpAction" class="org.idea.plugin.duplicatelines.CopyLineUpAction" text="Copy line(s) up." description="Copy line(s) up."> <add-to-group group-id="EditorActions" anchor="last"/> <keyboard-shortcut first-keystroke="control alt UP" keymap="$default"/> </action> </actions>
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ Ctrl + Alt + Up рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдорд╛рдирдХ рдЧреНрд░рд╣рдг рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрджрдд рд╣реЛ рдЧрдИред рдЖрдЗрдбрд┐рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рдЗрд╕ рд╕рдВрдпреЛрдЬрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреЛрдб
рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП gui рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ
CopyLineUpAction
рдХреНрд▓рд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдПрдХреНрд╢рди рдХрд╛ рддрд░реНрдХ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ: рдПрдХ рдкреНрд░рдореБрдЦ рд╕рдВрдпреЛрдЬрди рдХреЛ рджрдмрд╛рдХрд░, рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ, рдЗрд╕ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рдХреЗ рдКрдкрд░ рдЪрд┐рдкрдХрд╛рдПрдВ рдФрд░ рдХреЙрдкреА рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд░реНрд╕рд░ рдХреЛ рд▓реЗ рдЬрд╛рдПрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреБрдж CopyLineUpAction рдХреЛрдб, рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рдФрд░, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХреНрд╢рди рдХреНрд▓рд╛рд╕ рдореЗрдВ рдмрд┐рдирд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░):
CodeLineUpAction.java package org.idea.plugin.duplicatelines; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.editor.*; import com.intellij.openapi.editor.actionSystem.EditorAction; import com.intellij.openapi.editor.actionSystem.EditorActionHandler; import com.intellij.openapi.editor.actionSystem.EditorWriteActionHandler; import com.intellij.openapi.util.TextRange; public class CopyLineUpAction extends EditorAction { public CopyLineUpAction(EditorActionHandler defaultHandler) { super(defaultHandler); } public CopyLineUpAction() { this(new UpHandler()); } private static class UpHandler extends EditorWriteActionHandler { private UpHandler() { } @Override public void executeWriteAction(Editor editor, DataContext dataContext) { Document document = editor.getDocument(); if (editor == null || document == null || !document.isWritable()) { return; }
рдбрд┐рдмрдЧрд┐рдВрдЧ
рдЖрдк рдЖрдЗрдбрд┐рдпрд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рддрд░рд╣ рдирд╡ рдирд┐рд░реНрдорд┐рдд рдкреНрд▓рдЧрдЗрди рдХреЛ рдбрд┐рдмрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде, рд░рди / рдбрд┐рдмрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ -> рдирдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдВрдбреЛ рдЬреЛрдбрд╝реЗрдВ, рдЖрдкрдХреЛ рдкреНрд▓рдЧрдЗрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд░рди / рдбреАрдмрдЧ рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рдж, рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЖрдЗрдбрд┐рдпрд╛ рдХреА рдПрдХ рдирдИ рдХреЙрдкреА рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдПрдЧреАред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдкреНрд▓рдЧрдЗрди рдХреА рд╕реНрдерд╛рдкрдирд╛
рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрдиреВ рд╕реЗ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдмрдирд╛рдПрдБ -> рдкреНрд▓рдЧрдЗрди рдореЙрдбреНрдпреВрд▓ 'рдкреНрд▓рдЧрдЗрди рдирд╛рдо' рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ .jar рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред
рдкреНрд░рд╛рдЧрд┐рди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдлрд╝рд╛рдЗрд▓ -> рд╕реЗрдЯрд┐рдВрдЧреНрд╕ ... -> IDE рд╕реЗрдЯрд┐рдВрдЧреНрд╕ -> рдкреНрд▓рдЧрдЗрдиреНрд╕ -> рдбрд┐рд╕реНрдХ рд╕реЗ рдкреНрд▓рдЧ рдЗрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ ...
рдХреАрдореИрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрди рджреЗрдЦреЗрдВрдЧреЗ:

рдЬрд╛рдВрдЪреЗрдВ, рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред
Updред рдХреЙрдо рдХреЗ рд╕рд╛рде рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд
Range
рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред
intellij.openapi.util.TextRange
, рд╕рдВрдХреЗрдд
enDal рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
рд╕реНрд░реЛрдд рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВрдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╛рд╕ рдкреНрд░рд▓реЗрдЦрдирдЖрдЗрдбрд┐рдпрд╛ рдкреНрд▓рдЧрдЗрди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдУрдкрди рдПрдкреАрдЖрдИ рдФрд░ рдкреНрд▓рдЧрдЗрди рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ - рдпрд╣рд╛рдВ рдЖрдк рдЖрдЗрдбрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред