23 Star 113 Fork 29

阿唐/IntelliJ-EmmyLua

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
plugin.xml 21.72 KB
一键复制 编辑 原始数据 按行查看 历史
阿唐 提交于 2017-10-26 20:04 +08:00 . update plugin info
<!--
~ Copyright (c) 2017. tangzx(love.tangzx@qq.com)
~
~ 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>
<id>com.tang</id>
<name>EmmyLua</name>
<version>1.2.0</version>
<vendor email="love.tangzx@qq.com">tangzx</vendor>
<category>Custom Languages</category>
<description><![CDATA[
Support for Lua programming language.<br>
<p><a href="https://github.com/EmmyLua">Source Code</a> | <a href="https://gitter.im/emmylua/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link">Gitter</a> | <a href="https://emmylua.github.io/donate.html">Donate</a> | <a href="https://emmylua.github.io/?plugin">Doc</a></p>
Features:
<ul>
<li>Syntax highlighting</li>
<ul>
<li>Highlight global value</li>
<li>Highlight local/param value</li>
<li>Highlight up value</li>
</ul>
<li>Code completion</li>
<ul>
<li>Keyword completion</li>
<li>Basic completion</li>
<li>Type inferred based completion</li>
</ul>
<li>Debugger</li>
<ul>
<li>Attach Debugger(Windows only)</li>
<li>Remote Debugger(Mobdebug.lua)</li>
</ul>
<li>Lua 5.3 support</li>
<li>Find usages</li>
<li>Rename</li>
<li>Go to definition</li>
<li>Go to symbol</li>
<li>Go to class</li>
<li>Go to file</li>
<li>Parameter name hints</li>
<li>Comment based type/class annotation</li>
<li>Structure view</li>
<li>Comment in/out</li>
<li>Color settings page</li>
<li>Method override line marker</li>
<li>Quick Documentation</li>
<li>Live templates</li>
<li>Postfix completion templates</li>
<li>Code formatter</li>
<li>Code intentions</li>
<li>Code inspections</li>
<li>Lua Standard Library/API</li>
<li>Region folding</li>
<li>Lua Check Tool</li>
</ul>
<p>中国朋友可以加QQ群29850775交流及反馈BUG</p>
]]></description>
<change-notes><![CDATA[
<strong>1.1.9</strong>
<li>[UPDATE] Compatible with IDEA 2017.3(173)</li>
<li>[NEW] Add new annotation: @overload, used for mark overload functions (@optional is obsolete)</li>
<li>[NEW] Add new annotation: @language, used for inject language to lua string</li>
<li>[NEW] Add new inspection: Show warning for duplicated local declaration</li>
<li>[NEW] Show method separators</li>
<li>[NEW] Show local variable type hints</li>
<li>[NEW] Show parameter type hints</li>
<li>[NEW] Show function return type hints</li>
<li>[NEW] Add new postfix template "if_not"</li>
<li>[IMPROVE] Infer type from constructor call (settings/Languages.../EmmyLua)</li>
<li>[IMPROVE] Add auto completion and references for label(Lua 5.3)</li>
<li>[IMPROVE] You can toggle on/off 'smart enter' (settings/Languages.../EmmyLua)</li>
<li>[IMPROVE] You can toggle on/off 'show words in file' (settings/Languages.../EmmyLua)</li>
<li>[FIX] Support forward declaration local-function</li>
<li>[FIX] Crash when type --[ at EOF</li>
<li>[FIX] Fix some bugs</li>
<a href="https://tangzx.github.io/emmydoc/changelogs.html">Full changelog</a>
]]>
</change-notes>
<!-- please see https://confluence.jetbrains.com/display/IDEADEV/Build+Number+Ranges for description -->
<idea-version since-build="171" until-build="173.*"/>
<!-- please see https://confluence.jetbrains.com/display/IDEADEV/Plugin+Compatibility+with+IntelliJ+Platform+Products
on how to target different products -->
<depends>com.intellij.modules.lang</depends>
<extensions defaultExtensionNs="com.intellij">
<!--<errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>-->
<!--LuaCheck-->
<toolWindow id="LuaCheck"
anchor="bottom"
icon="/icons/lua.png"
factoryClass="com.tang.intellij.lua.luacheck.LuaCheckToolWindowFactory"
canCloseContents="true"/>
<projectService serviceImplementation="com.tang.intellij.lua.luacheck.LuaCheckView"
serviceInterface="com.tang.intellij.lua.luacheck.LuaCheckView"/>
<applicationService serviceInterface="com.tang.intellij.lua.luacheck.LuaCheckSettings"
serviceImplementation="com.tang.intellij.lua.luacheck.LuaCheckSettings"/>
<!--CreateFromTemplate-->
<createFromTemplateHandler implementation="com.tang.intellij.lua.actions.LuaCreateFromTemplateHandler"/>
<!--module and library-->
<moduleType id="LUA_MODULE" implementationClass="com.tang.intellij.lua.project.LuaModuleType"/>
<moduleConfigurationEditorProvider implementation="com.tang.intellij.lua.project.LuaModuleConfigurationEditorProvider"/>
<sdkType implementation="com.tang.intellij.lua.project.LuaSdkType"/>
<library.type implementation="com.tang.intellij.lua.project.LuaLibraryType"/>
<indexedRootsProvider implementation="com.tang.intellij.lua.project.LuaPredefinedLibraryProvider"/>
<!--lang-->
<lang.foldingBuilder language="Lua" implementationClass="com.tang.intellij.lua.folding.LuaFoldingBuilder"/>
<lang.braceMatcher language="Lua" implementationClass="com.tang.intellij.lua.braces.LuaBraceMatcher"/>
<lang.syntaxHighlighterFactory language="Lua" implementationClass="com.tang.intellij.lua.highlighting.LuaSyntaxHighlighterFactory"/>
<lang.parserDefinition language="Lua" implementationClass="com.tang.intellij.lua.lang.LuaParserDefinition"/>
<lang.documentationProvider language="Lua" implementationClass="com.tang.intellij.lua.documentation.LuaDocumentationProvider"/>
<lang.psiStructureViewFactory language="Lua" implementationClass="com.tang.intellij.lua.editor.LuaStructureViewFactory"/>
<lang.commenter language="Lua" implementationClass="com.tang.intellij.lua.editor.LuaCommenter"/>
<lang.quoteHandler language="Lua" implementationClass="com.tang.intellij.lua.codeInsight.editorActions.LuaQuoteHandler"/>
<highlightErrorFilter implementation="com.tang.intellij.lua.highlighting.LuaHighlightErrorFilter"/>
<iconProvider implementation="com.tang.intellij.lua.editor.LuaIconProvider"/>
<fileTypeFactory implementation="com.tang.intellij.lua.lang.LuaFileTypeFactory"/>
<psi.referenceContributor language="Lua" implementation="com.tang.intellij.lua.reference.LuaReferenceContributor"/>
<languageInjector implementation="com.tang.intellij.lua.lang.LuaLanguageInjector"/>
<spellchecker.support implementationClass="com.tang.intellij.lua.editor.LuaSpellcheckingStrategy" language="Lua"/>
<!--usage-->
<lang.findUsagesProvider language="Lua" implementationClass="com.tang.intellij.lua.usages.LuaFindUsagesProvider"/>
<findUsagesHandlerFactory implementation="com.tang.intellij.lua.usages.LuaFindUsagesHandlerFactory"/>
<usageTypeProvider implementation="com.tang.intellij.lua.usages.UsageTypeProvider"/>
<!--refactor-->
<lang.refactoringSupport language="Lua" implementationClass="com.tang.intellij.lua.editor.LuaRefactoringSupportProvider"/>
<nameSuggestionProvider implementation="com.tang.intellij.lua.editor.LuaNameSuggestionProvider"/>
<qualifiedNameProvider implementation="com.tang.intellij.lua.editor.LuaQualifiedNameProvider"/>
<renamePsiElementProcessor implementation="com.tang.intellij.lua.refactoring.rename.RenameLuaMethodProcessor"/>
<inlineActionHandler implementation="com.tang.intellij.lua.refactoring.inline.LuaInlineActionHandler"/>
<moveFileHandler implementation="com.tang.intellij.lua.refactoring.move.LuaMoveFileHandler"/>
<!--navigate-->
<gotoClassContributor implementation="com.tang.intellij.lua.editor.LuaClassNavigationContributor"/>
<gotoSymbolContributor implementation="com.tang.intellij.lua.editor.LuaSymbolNavigationContributor"/>
<breadcrumbsInfoProvider implementation="com.tang.intellij.lua.editor.LuaBreadcrumbsProvider"/>
<!--completion-->
<completion.contributor language="Lua" implementationClass="com.tang.intellij.lua.editor.completion.LuaDocCompletionContributor"/>
<completion.contributor language="Lua" implementationClass="com.tang.intellij.lua.editor.completion.LuaCompletionContributor"/>
<!--codeInsight-->
<codeInsight.lineMarkerProvider language="Lua" implementationClass="com.tang.intellij.lua.codeInsight.LuaLineMarkerProvider"/>
<codeInsight.parameterNameHints language="Lua" implementationClass="com.tang.intellij.lua.codeInsight.LuaParameterHintsProvider"/>
<codeInsight.parameterInfo language="Lua" implementationClass="com.tang.intellij.lua.codeInsight.LuaParameterInfoHandler"/>
<codeInsight.template.postfixTemplateProvider language="Lua" implementationClass="com.tang.intellij.lua.codeInsight.postfix.LuaPostfixTemplateProvider"/>
<highlightVisitor implementation="com.tang.intellij.lua.codeInsight.LuaRainbowVisitor"/>
<highlightUsagesHandlerFactory implementation="com.tang.intellij.lua.codeInsight.highlighting.LuaHighlightUsagesHandlerFactory"/>
<!--editor handlers-->
<enterHandlerDelegate implementation="com.tang.intellij.lua.editor.LuaEnterAfterUnmatchedBraceHandler" />
<enterHandlerDelegate implementation="com.tang.intellij.lua.editor.LuaEnterInDocHandler"/>
<enterHandlerDelegate implementation="com.tang.intellij.lua.editor.LuaEnterBetweenBracesHandler"/>
<enterHandlerDelegate implementation="com.tang.intellij.lua.editor.LuaEnterBetweenRangeBlockHandler"/>
<backspaceHandlerDelegate implementation="com.tang.intellij.lua.codeInsight.LuaBackspaceHandlerDelegate"/>
<typedHandler implementation="com.tang.intellij.lua.editor.LuaTypedHandler"/>
<typedHandler implementation="com.tang.intellij.lua.editor.LuaAutoIndentHandler"/>
<!--highlighting-->
<annotator language="Lua" implementationClass="com.tang.intellij.lua.annotator.LuaAnnotator" />
<problemFileHighlightFilter implementation="com.tang.intellij.lua.highlighting.LuaProblemFileHighlightFilter"/>
<colorSettingsPage implementation="com.tang.intellij.lua.editor.LuaColorSettingsPage"/>
<additionalTextAttributes scheme="Default" file="colorSchemes/Default.xml"/>
<additionalTextAttributes scheme="Darcula" file="colorSchemes/Darcula.xml"/>
<!--stub & index-->
<stubElementTypeHolder class="com.tang.intellij.lua.psi.LuaTypes" />
<stubElementTypeHolder class="com.tang.intellij.lua.comment.psi.LuaDocTypes"/>
<stubIndex implementation="com.tang.intellij.lua.stubs.index.LuaClassIndex"/>
<stubIndex implementation="com.tang.intellij.lua.stubs.index.LuaGlobalIndex"/>
<stubIndex implementation="com.tang.intellij.lua.stubs.index.LuaClassMemberIndex"/>
<stubIndex implementation="com.tang.intellij.lua.stubs.index.LuaShortNameIndex"/>
<stubIndex implementation="com.tang.intellij.lua.stubs.index.LuaSuperClassIndex"/>
<!--surround descriptors-->
<lang.surroundDescriptor language="Lua" implementationClass="com.tang.intellij.lua.editor.surroundWith.LuaSurroundDescriptor"/>
<!-- formatting & code style -->
<lang.formatter language="Lua" implementationClass="com.tang.intellij.lua.editor.formatter.LuaFormattingModelBuilder"/>
<codeStyleSettingsProvider implementation="com.tang.intellij.lua.editor.formatter.LuaCodeStyleSettingsProvider"/>
<langCodeStyleSettingsProvider implementation="com.tang.intellij.lua.editor.formatter.LuaLanguageCodeStyleSettingsProvider"/>
<!-- runner & debugger -->
<runConfigurationProducer implementation="com.tang.intellij.lua.debugger.LuaRunConfigurationProducer"/>
<programRunner implementation="com.tang.intellij.lua.debugger.remote.LuaMobDebuggerRunner"/>
<configurationType implementation="com.tang.intellij.lua.debugger.remote.LuaMobConfigurationType"/>
<programRunner implementation="com.tang.intellij.lua.debugger.app.LuaAppRunner"/>
<configurationType implementation="com.tang.intellij.lua.debugger.app.LuaAppConfigurationType"/>
<xdebugger.breakpointType implementation="com.tang.intellij.lua.debugger.LuaLineBreakpointType"/>
<xdebugger.localAttachDebuggerProvider implementation="com.tang.intellij.lua.debugger.attach.LuaLocalAttachDebuggerProvider"/>
<!--templates-->
<defaultLiveTemplatesProvider implementation="com.tang.intellij.lua.codeInsight.LuaLiveTemplatesProvider"/>
<liveTemplateContext implementation="com.tang.intellij.lua.codeInsight.LuaCodeTemplateContextType"/>
<liveTemplateContext implementation="com.tang.intellij.lua.codeInsight.LuaIfContextType"/>
<liveTemplateMacro implementation="com.tang.intellij.lua.codeInsight.template.macro.SuggestFirstLuaVarNameMacro"/>
<!--lua settings-->
<applicationService serviceInterface="com.tang.intellij.lua.project.LuaSettings"
serviceImplementation="com.tang.intellij.lua.project.LuaSettings"/>
<applicationConfigurable groupId="language"
displayName="EmmyLua"
id="preferences.Lua"
instance="com.tang.intellij.lua.project.LuaSettingsPanel">
<configurable instance="com.tang.intellij.lua.luacheck.LuaCheckSettingsPanel"
displayName="LuaCheck"
id="preferences.LuaCheck"/>
</applicationConfigurable>
<!--intentions-->
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.CreateParameterAnnotationIntention</className>
<descriptionDirectoryName>CreateParameterAnnotationIntention</descriptionDirectoryName>
</intentionAction>
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.CreateTypeAnnotationIntention</className>
<descriptionDirectoryName>CreateTypeAnnotationIntention</descriptionDirectoryName>
</intentionAction>
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.CreateFunctionReturnAnnotationIntention</className>
<descriptionDirectoryName>CreateFunctionReturnAnnotationIntention</descriptionDirectoryName>
</intentionAction>
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.CreateFunctionDocIntention</className>
<descriptionDirectoryName>CreateFunctionDocIntention</descriptionDirectoryName>
</intentionAction>
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.CreateFieldFromParameterIntention</className>
<descriptionDirectoryName>CreateFieldFromParameterIntention</descriptionDirectoryName>
</intentionAction>
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.CreateMethodIntention</className>
<descriptionDirectoryName>CreateMethodIntention</descriptionDirectoryName>
</intentionAction>
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.AppendCallParenIntention</className>
</intentionAction>
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.RemoveCallParenIntention</className>
</intentionAction>
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.InvertBooleanIntention</className>
</intentionAction>
<intentionAction>
<category>Lua</category>
<className>com.tang.intellij.lua.codeInsight.intention.SetVisibilityIntention</className>
</intentionAction>
<localInspection
implementationClass="com.tang.intellij.lua.codeInsight.inspection.DuplicateClassDeclaration"
displayName="Duplicate Class"
enabledByDefault="true"
level="ERROR"
groupName="Lua"/>
<localInspection
implementationClass="com.tang.intellij.lua.codeInsight.inspection.SimplifyLocalAssignment"
displayName="Local assign can be simpler"
enabledByDefault="true"
groupName="Lua"/>
<localInspection
displayName="Lua Standard Compliance"
enabledByDefault="true"
groupName="Lua"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.LuaStandardCompliance"/>
<localInspection
displayName="Remove Unused"
enabledByDefault="true"
groupName="Lua"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.RemoveUnusedLocal"/>
<localInspection
displayName="Empty body"
enabledByDefault="true"
groupName="Lua"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.EmptyBody"/>
<localInspection
displayName="Unreachable statement"
enabledByDefault="true"
groupName="Lua"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.UnreachableStatement"/>
<localInspection
displayName="0 index"
enabledByDefault="true"
groupName="Lua"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.ArrayIndexZero"/>
<localInspection
displayName="Local name hides previous"
enabledByDefault="true"
groupName="Lua"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.LocalNameHidesPrevious"/>
<localInspection
displayName="Match function signature"
enabledByDefault="false"
groupName="Lua > Lint > Type safety"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.MatchFunctionSignatureInspection"/>
<localInspection
displayName="Undeclared variable"
enabledByDefault="false"
groupName="Lua > Lint > Type safety"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.UndeclaredVariableInspection"/>
<localInspection
displayName="Return type"
enabledByDefault="false"
groupName="Lua > Lint > Type safety"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.ReturnTypeInspection"/>
<localInspection
displayName="Assign type"
enabledByDefault="false"
groupName="Lua > Lint > Type safety"
implementationClass="com.tang.intellij.lua.codeInsight.inspection.AssignTypeInspection"/>
</extensions>
<application-components>
<component>
<implementation-class>com.tang.intellij.lua.project.StdSDK</implementation-class>
</component>
</application-components>
<project-components>
<!-- Add your project components here -->
</project-components>
<actions>
<action class="com.tang.intellij.lua.actions.CreateLuaFileAction"
text="Lua File"
id="lua.newFile">
<add-to-group group-id="NewGroup" anchor="before" relative-to-action="NewFile"/>
</action>
<action class="com.tang.intellij.lua.actions.CreateTutorialFileAction"
text="Lua Tutorial"
id="lua.newTutorial">
<add-to-group group-id="NewGroup" anchor="after" relative-to-action="lua.newFile"/>
</action>
<action id="LuaCheck"
text="Run LuaCheck"
popup="true"
icon="/icons/lua.png"
class="com.tang.intellij.lua.luacheck.LuaCheckGroup">
<add-to-group group-id="ToolsMenu" anchor="last"/>
<add-to-group group-id="ProjectViewPopupMenu" anchor="last"/>
<add-to-group group-id="EditorPopupMenu" anchor="last"/>
</action>
</actions>
<extensionPoints>
<extensionPoint qualifiedName="com.tang.intellij.lua.luaClassInheritorsSearch" interface="com.intellij.util.QueryExecutor"/>
<extensionPoint qualifiedName="com.tang.intellij.lua.luaAllClassesSearch" interface="com.intellij.util.QueryExecutor"/>
<extensionPoint qualifiedName="com.tang.intellij.lua.luaOverridingMethodsSearch" interface="com.intellij.util.QueryExecutor"/>
</extensionPoints>
<extensions defaultExtensionNs="com.tang.intellij.lua">
<luaClassInheritorsSearch implementation="com.tang.intellij.lua.psi.search.LuaClassInheritorsSearchExecutor"/>
<luaAllClassesSearch implementation="com.tang.intellij.lua.psi.search.LuaAllClassesSearchExecutor"/>
<luaOverridingMethodsSearch implementation="com.tang.intellij.lua.psi.search.LuaOverridingMethodsSearchExecutor"/>
</extensions>
</idea-plugin>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/tangzx/IntelliJ-Lua.git
git@gitee.com:tangzx/IntelliJ-Lua.git
tangzx
IntelliJ-Lua
IntelliJ-EmmyLua
59f09a9b17f1cd7e64f84859ca2b112cd0dbd0c6

搜索帮助