This repository has been archived by the owner on Sep 28, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
plugin.xml
165 lines (155 loc) · 10.7 KB
/
plugin.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<!--
* Copyright 2020, Optimizely, Inc. and contributors *
* *
* Licensed under the Apache License, Version 2.0 (the "License"); *
* you may not use this file except in compliance with the License. *
* You may obtain a copy of the License at *
* *
* http://www.apache.org/licenses/LICENSE-2.0 *
* *
* Unless required by applicable law or agreed to in writing, software *
* distributed under the License is distributed on an "AS IS" BASIS, *
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
* See the License for the specific language governing permissions and *
* limitations under the License.
-->
<idea-plugin>
<!-- Unique id for this plugin. Must stay constant for the life of the plugin. -->
<id>com.optimizely.intellij.sdk.action</id>
<!-- Text to display as name on Preferences/Settings | Plugin page -->
<name>Optimizely</name>
<!-- The version of this plugin -->
<version>0.2.1</version>
<!-- Compatible with the following versions of IntelliJ Platform:
version 2018.3 (build #183) and newer. -->
<idea-version since-build="192"/>
<!-- Indicate this plugin can be loaded in all IntelliJ Platform-based products. -->
<depends>com.intellij.modules.platform</depends>
<depends>com.intellij.modules.lang</depends>
<depends optional="true" config-file="optimizely-java.xml">com.intellij.modules.java</depends>
<depends optional="true" config-file="optimizely-kotlin.xml">org.jetbrains.kotlin</depends>
<depends optional="true" config-file="optimizely-python.xml">com.intellij.modules.python</depends>
<!-- <depends optional="true" config-file="optimizely-go.xml">com.intellij.modules.go</depends> -->
<depends optional="true" config-file="optimizely-go.xml">org.jetbrains.plugins.go</depends>
<!-- Text to display as description on Preferences/Settings | Plugin page -->
<description>
<![CDATA[
A plugin for all versions of IntelliJ.
<br/><br/>
The plugin uses the Optimizely Java open source SDK. It polls for datafile updates so that the latest datafile is available while you are editing. The plugin is designed to be as light weight as possible so as not to slow down any other features. You cut and paste your sdk key into the set sdk key dialog and then use the keyboard shortcuts to insert the appropriate Optimizely key.
<br/><br/>
The basic actions that are supported:
<br/>
In the pulldown menu, there is a Optimizely option. From there you can go to:
<br/><br/>
Set SDK Key -> set an sdk key.
<br/><br/>
If the SDK key is set, it is displayed at the top level and the Jump To menu is available.
<br/>
Jump To -> Experiments, Features -> open the Optimizely application edit page for the experiment or feature using your default browser.
<br/><br/>
List of Experiments-> experiment key. If chosen, it will insert that key string at the current editor cursor location.
<br/><br/>
List of Features-> feature key. If chosen, it will insert that key string at the current editor cursor location.
<br/><br/>
List of Variations -> variation key or variable key dending on the last experiment or feature chosen. If chosen, it will insert that key string at the current editor cursor location.
<br/><br/>
List of Attributes -> valid attribute keys. If chosen, it will insert that key string at the current editor cursor location.
<br/><br/>
List of Events -> valid event keys. If chosen, it will insert that key string at the current editor cursor location.
<br/><br/>
Debug Dialog -> Intuitive dialog that allows you to test and see log output from running your experiments or features.
<br/><br/>
Direct keyboard access can be achieved for inplace editing. Below is a list of keyboard shortcuts:
option or alt o :
<br/>
s - set the sdk key.
<br/>
f - list of feature keys.
<br/>
e - list of experiment keys.
<br/>
v - list of variable or variation keys depending on which feature or experiment was chosen last.
<br/>
t - list of event keys
<br/>
a - list of attribute keys.
<br/>
d - open debug dialog.
<br/><br/>
You can also use default autocomplete (go, python, java, kotlin) for feature methods such as isFeatureEnabled and getFeatureVariable to return only a feature key list. Same holds true for experiment methods.
Methods like getFeatureVariable and getFeatureVariable(Type) will autocomplete (command-space bar) to the available feature variable or nothing if there is not a match for that variable type for that feature key.
In order for getFeatureVariable to autocomplete on the feature variable, it relies on the feature key being in place quoted string.
<br/><br/>
We are relying on you to help us make Optimizely a seamless integration tool for your development environment.
If you want a new feature, discover a bug, or like it, leave a comment, or open an issue in github. The plugin is
open sourced https://github.com/optimizely/intellij-plugin.
]]>
</description>
<change-notes>
<![CDATA[
<ul>
<li><b>0.2.1</b> Compatible with latest IDEs including AndroidStudio. Cleanup debug dialog.</li>
<li><b>0.2.0</b> Release with a debug dialog that allows you to debug your configuration.</li>
<li><b>0.1.1</b> Release with auto-complete for feature variable type.</li>
<li><b>0.1.0</b> Release 2019.3.4 and up with code completion.</li>
</ul>
]]>
</change-notes>
<!-- Text to display as company information on Preferences/Settings | Plugin page -->
<vendor url="https://www.optimizely.com">Optimizely</vendor>
<actions>
<!-- OptimizelyActionGroup demonstrates declaring an action group based on a ActionGroup class supplied by this plugin.
This group is to be inserted atop the Editor Popup Menu. It declares one action in the group. -->
<group id="com.optimizely.intellij.plugin.action.OptimizelyActionGroup" class="com.optimizely.intellij.plugin.action.OptimizelyActionGroup" popup="true"
text="Optimizely" description="Optimizely helper plugin" icon="ActionBasicsIcons.Sdk_default_icon">
<add-to-group group-id="ToolsMenu" anchor="first"/>
<group id="com.optimizely.intellij.plugin.action.OptimizelyJumptoGroup" class="com.intellij.openapi.actionSystem.DefaultActionGroup" popup="true"
text="Jump to " description="Jump to the optimizely application by feature or experiment" icon="ActionBasicsIcons.Sdk_default_icon">
<group id="com.optimizely.intellij.plugin.action.OptimizelyJumptoExperiment" class="com.optimizely.intellij.plugin.action.DynamicActionGroup" popup="true"
text="Experiments" description="Jump to the optimizely application by experiment" icon="ActionBasicsIcons.Sdk_default_icon"/>
<group id="com.optimizely.intellij.plugin.action.OptimizelyJumptoFeature" class="com.optimizely.intellij.plugin.action.DynamicActionGroup" popup="true"
text="Features" description="Jump to the optimizely application by feature" icon="ActionBasicsIcons.Sdk_default_icon"/>
</group>
<action id="com.optimizely.intellij.plugin.action.SetAction" class="com.optimizely.intellij.plugin.action.SetAction"
text="Set SDK Key to use" description="sdk key of project that contains experiments, features, and events that you use" icon="ActionBasicsIcons.Sdk_default_icon">
<keyboard-shortcut first-keystroke="alt O" second-keystroke="S" keymap="$default"/>
<mouse-shortcut keystroke="control button3 doubleClick" keymap="$default"/>
</action>
<action id="com.optimizely.intellij.plugin.action.ListExperiments" class="com.optimizely.intellij.plugin.action.ListAction"
text="List Experiment Keys" description="list experiments of your current sdk key" icon="ActionBasicsIcons.Sdk_default_icon">
<keyboard-shortcut first-keystroke="alt O" second-keystroke="E" keymap="$default"/>
<mouse-shortcut keystroke="control button3 doubleClick" keymap="$default"/>
</action>
<action id="com.optimizely.intellij.plugin.action.ListFeatures" class="com.optimizely.intellij.plugin.action.ListAction"
text="List Feature Keys" description="list features of your current sdk key" icon="ActionBasicsIcons.Sdk_default_icon">
<keyboard-shortcut first-keystroke="alt O" second-keystroke="F" keymap="$default"/>
<mouse-shortcut keystroke="control button2 doubleClick" keymap="$default"/>
</action>
<action id="com.optimizely.intellij.plugin.action.ListEvents" class="com.optimizely.intellij.plugin.action.ListAction"
text="List Event Keys" description="list events of your current sdk key" icon="ActionBasicsIcons.Sdk_default_icon">
<keyboard-shortcut first-keystroke="alt O" second-keystroke="T" keymap="$default"/>
<mouse-shortcut keystroke="control button2 doubleClick" keymap="$default"/>
</action>
<action id="com.optimizely.intellij.plugin.action.ListAttributes" class="com.optimizely.intellij.plugin.action.ListAction"
text="List Attribute Keys" description="list events of your current sdk key" icon="ActionBasicsIcons.Sdk_default_icon">
<keyboard-shortcut first-keystroke="alt O" second-keystroke="A" keymap="$default"/>
<mouse-shortcut keystroke="control button2 doubleClick" keymap="$default"/>
</action>
<action id="com.optimizely.intellij.plugin.action.ListVariations" class="com.optimizely.intellij.plugin.action.ListAction"
text="List Variation Keys" description="list variations for the current experiment or feature flag" icon="ActionBasicsIcons.Sdk_default_icon">
<keyboard-shortcut first-keystroke="alt O" second-keystroke="V" keymap="$default"/>
<mouse-shortcut keystroke="control button2 doubleClick" keymap="$default"/>
</action>
<action id="com.optimizely.intellij.plugin.action.DebugAction" class="com.optimizely.intellij.plugin.action.DebugAction"
text="Debug Dialog" description="Run experiment or feature API on your project adding userId and attributes" icon="ActionBasicsIcons.Sdk_default_icon">
<keyboard-shortcut first-keystroke="alt O" second-keystroke="D" keymap="$default"/>
<mouse-shortcut keystroke="control button2 doubleClick" keymap="$default"/>
</action>
</group>
</actions>
<extensions defaultExtensionNs="com.intellij">
<applicationService serviceInterface="com.optimizely.intellij.plugin.service.OptimizelyFactoryService"
serviceImplementation="com.optimizely.intellij.plugin.service.OptimizelyFactoryServiceImpl"/>
</extensions>
</idea-plugin>