mirror of
https://github.com/JetBrains/intellij-sdk-code-samples.git
synced 2025-07-30 18:27:49 +08:00
New Live Template tutorial
This commit is contained in:
parent
c12a758bcd
commit
026d72a086
9
.idea/runConfigurations/comparing_references_inspection.xml
generated
Normal file
9
.idea/runConfigurations/comparing_references_inspection.xml
generated
Normal file
@ -0,0 +1,9 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="comparing_references_inspection" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
|
||||
<module name="comparing_references_inspection" />
|
||||
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<log_file path="$USER_HOME$/.IdeaIC15/system/plugins-sandbox/system/log/idea.log" checked="false" skipped="true" show_all="false" alias="IDEA LOG" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
9
.idea/runConfigurations/conditional_operator_intention.xml
generated
Normal file
9
.idea/runConfigurations/conditional_operator_intention.xml
generated
Normal file
@ -0,0 +1,9 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="conditional_operator_intention" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
|
||||
<module name="conditional_operator_intention" />
|
||||
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<log_file path="$USER_HOME$/.IdeaIC15/system/plugins-sandbox/system/log/idea.log" checked="false" skipped="true" show_all="false" alias="IDEA LOG" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
9
.idea/runConfigurations/live_templates.xml
generated
Normal file
9
.idea/runConfigurations/live_templates.xml
generated
Normal file
@ -0,0 +1,9 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="live_templates" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" factoryName="Plugin">
|
||||
<module name="live_templates" />
|
||||
<option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<log_file path="$USER_HOME$/.IdeaIC15/system/plugins-sandbox/system/log/idea.log" checked="false" skipped="true" show_all="false" alias="IDEA LOG" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
13
code_samples/live_templates/live_templates.iml
Normal file
13
code_samples/live_templates/live_templates.iml
Normal file
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PLUGIN_MODULE" version="4">
|
||||
<component name="DevKit.ModuleBuildProperties" url="file://$MODULE_DIR$/resources/META-INF/plugin.xml" />
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
35
code_samples/live_templates/resources/META-INF/plugin.xml
Normal file
35
code_samples/live_templates/resources/META-INF/plugin.xml
Normal file
@ -0,0 +1,35 @@
|
||||
<idea-plugin version="2">
|
||||
<id>com.your.company.unique.plugin.id</id>
|
||||
<name>Plugin display name here</name>
|
||||
<version>1.0</version>
|
||||
<vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor>
|
||||
|
||||
<description><![CDATA[
|
||||
Enter short description for your plugin here.<br>
|
||||
<em>most HTML tags may be used</em>
|
||||
]]></description>
|
||||
|
||||
<change-notes><![CDATA[
|
||||
Add change notes here.<br>
|
||||
<em>most HTML tags may be used</em>
|
||||
]]>
|
||||
</change-notes>
|
||||
|
||||
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
|
||||
<idea-version since-build="141.0"/>
|
||||
|
||||
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
|
||||
on how to target different products -->
|
||||
<!-- uncomment to enable plugin in all products
|
||||
<depends>com.intellij.modules.lang</depends>
|
||||
-->
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<!-- Add your extensions here -->
|
||||
</extensions>
|
||||
|
||||
<actions>
|
||||
<!-- Add your actions here -->
|
||||
</actions>
|
||||
|
||||
</idea-plugin>
|
@ -0,0 +1,9 @@
|
||||
<templateSet group="Markdown">
|
||||
<template name="[" value="[$TEXT$]($LINK$)$END$" description="New link reference." toReformat="false" toShortenFQNames="false">
|
||||
<variable name="TEXT" expression="" defaultValue="" alwaysStopAt="true" />
|
||||
<variable name="LINK" expression="complete()" defaultValue="" alwaysStopAt="true" />
|
||||
<context>
|
||||
<option name="MARKDOWN" value="true" />
|
||||
</context>
|
||||
</template>
|
||||
</templateSet>
|
7
code_samples/live_templates/src/MarkdownContext.java
Normal file
7
code_samples/live_templates/src/MarkdownContext.java
Normal file
@ -0,0 +1,7 @@
|
||||
import com.intellij.codeInsight.template.TemplateContextType;
|
||||
|
||||
/**
|
||||
* Created by breandan on 1/11/2016.
|
||||
*/
|
||||
public class MarkdownContext extends TemplateContextType {
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
import com.intellij.codeInsight.template.impl.DefaultLiveTemplatesProvider;
|
||||
|
||||
/**
|
||||
* Created by breandan on 1/11/2016.
|
||||
*/
|
||||
public class MarkdownTemplateProvider implements DefaultLiveTemplatesProvider {
|
||||
}
|
0
tutorials/live_templates.md
Normal file
0
tutorials/live_templates.md
Normal file
36
tutorials/live_templates/template_support.md
Normal file
36
tutorials/live_templates/template_support.md
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
title: 1. Adding Live Template Support
|
||||
---
|
||||
|
||||
## Template Creation
|
||||
|
||||
Initially, you will need to [create a new Live Template](https://www.jetbrains.com/idea/help/creating-and-editing-live-templates.html#d1476224e158) from scratch. Add a new Template Group, "Markdown" and create a new Live Template under this group. Then give the template an abbreviation (ex. "[") and a description (ex. "New markdown link"). Paste the following snippet into the *Template text*:
|
||||
|
||||
```
|
||||
[$TEXT$]($LINK$)$END$
|
||||
```
|
||||
|
||||
The variables `$TEXT$` and `$LINK$` may be further configured in the *Edit variables* dialogue, to reorder their precedence and bind to functions that will invoke auto-completion at the appropriate time, among many other [useful functions](https://www.jetbrains.com/idea/help/creating-and-editing-template-variables.html). Developers should become familiar with the provided functions before implementing any special functionality in a plugin, in case the desired feature is available as a [predefined function](https://www.jetbrains.com/idea/help/creating-and-editing-template-variables.html#predefined_functions).
|
||||
|
||||
Finally, give your new Live Template an applicable context (ie. "Everywhere" or "Other").
|
||||
|
||||
## Export the Live Template
|
||||
|
||||
Once confident the Live Template produces the expected result (consider testing it inside the current editor to minimize debugging later), export the Live Template (**File \| Export Settings \| ☑ Live Templates**). Unpack the resulting archive, and inside a directory `./templates/` there will be a file called `Markdown.xml` with the following contents:
|
||||
|
||||
```xml
|
||||
<templateSet group="Markdown">
|
||||
<template name="[" value="[$TEXT$]($LINK$)$END$" description="New link reference." toReformat="false" toShortenFQNames="false">
|
||||
<variable name="TEXT" expression="" defaultValue="" alwaysStopAt="true" />
|
||||
<variable name="LINK" expression="complete()" defaultValue="" alwaysStopAt="true" />
|
||||
<context>
|
||||
<option name="OTHER" value="true" />
|
||||
</context>
|
||||
</template>
|
||||
</templateSet>
|
||||
```
|
||||
|
||||
Copy this file into your plugin's resources, (eg. `project/resource/liveTemplates/Markdown.xml`.
|
||||
|
||||
## Implement DefaultLiveTemplatesProvider
|
||||
|
Loading…
x
Reference in New Issue
Block a user