Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Intellij Community
Commits
60532516
Commit
60532516
authored
7 years ago
by
Yaroslav Pankratyev
Browse files
Options
Download
Email Patches
Plain Diff
IDEA-115118 Refactoring and improvements in ExtensionOrderConverter
parent
1ec14fb6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
plugins/devkit/src/dom/ExtensionOrderConverter.java
+8
-11
plugins/devkit/src/dom/ExtensionOrderConverter.java
plugins/devkit/testData/codeInsight/orderAttributeCompletionLanguage.xml
+1
-1
...testData/codeInsight/orderAttributeCompletionLanguage.xml
with
9 additions
and
12 deletions
+9
-12
plugins/devkit/src/dom/ExtensionOrderConverter.java
+
8
-
11
View file @
60532516
...
...
@@ -5,18 +5,19 @@ import com.intellij.codeInsight.completion.CompletionUtil;
import
com.intellij.codeInsight.daemon.EmptyResolveMessageProvider
;
import
com.intellij.codeInsight.lookup.LookupElement
;
import
com.intellij.codeInsight.lookup.LookupElementBuilder
;
import
com.intellij.icons.AllIcons
;
import
com.intellij.lang.LanguageExtensionPoint
;
import
com.intellij.openapi.diagnostic.Logger
;
import
com.intellij.openapi.extensions.LoadingOrder
;
import
com.intellij.openapi.fileTypes.FileTypeExtensionPoint
;
import
com.intellij.openapi.module.Module
;
import
com.intellij.openapi.module.ModuleType
;
import
com.intellij.openapi.project.Project
;
import
com.intellij.openapi.util.TextRange
;
import
com.intellij.openapi.util.text.StringUtil
;
import
com.intellij.pom.references.PomService
;
import
com.intellij.psi.*
;
import
com.intellij.psi.search.GlobalSearchScope
;
import
com.intellij.psi.util.InheritanceUtil
;
import
com.intellij.psi.util.ReferenceSetBase
;
import
com.intellij.psi.xml.XmlTag
;
import
com.intellij.util.ArrayUtil
;
...
...
@@ -246,12 +247,10 @@ public class ExtensionOrderConverter implements CustomReferenceConverter<String>
GlobalSearchScope
resolveScope
=
getElement
().
getResolveScope
();
PsiClass
languageEpClass
=
javaPsiFacade
.
findClass
(
LanguageExtensionPoint
.
class
.
getCanonicalName
(),
resolveScope
);
if
(
languageEpClass
==
null
)
{
LOG
.
error
(
"Cannot find LanguageExtensionPoint class; extension: "
+
myExtension
);
return
Collections
.
emptyMap
();
}
PsiClass
fileTypeEpClass
=
javaPsiFacade
.
findClass
(
FileTypeExtensionPoint
.
class
.
getCanonicalName
(),
resolveScope
);
if
(
fileTypeEpClass
==
null
)
{
LOG
.
error
(
"Cannot find FileTypeExtensionPoint class; extension: "
+
myExtension
);
return
Collections
.
emptyMap
();
}
...
...
@@ -270,7 +269,7 @@ public class ExtensionOrderConverter implements CustomReferenceConverter<String>
if
(
currentExtensionLanguage
!=
null
)
{
String
language
=
getSpecificExtensionAttribute
(
extension
,
languageEpClass
,
"language"
);
if
(
language
!=
null
)
{
if
(!
language
.
equals
IgnoreCase
(
"ANY"
)
&&
!
language
.
equals
IgnoreCase
(
currentExtensionLanguage
))
{
if
(!
language
.
equals
(
"any"
)
&&
!
language
.
isEmpty
(
)
&&
!
language
.
equals
(
currentExtensionLanguage
))
{
continue
;
}
extensionMark
=
language
;
...
...
@@ -279,7 +278,7 @@ public class ExtensionOrderConverter implements CustomReferenceConverter<String>
if
(
currentExtensionFileType
!=
null
)
{
String
fileType
=
getSpecificExtensionAttribute
(
extension
,
fileTypeEpClass
,
"filetype"
);
if
(
fileType
!=
null
)
{
if
(!
currentExtensionFileType
.
equals
IgnoreCase
(
fileType
))
{
if
(!
currentExtensionFileType
.
equals
(
fileType
))
{
continue
;
}
extensionMark
=
extensionMark
!=
null
?
null
:
fileType
;
// null if _somehow_ both filetype and language are present
...
...
@@ -323,7 +322,7 @@ public class ExtensionOrderConverter implements CustomReferenceConverter<String>
if
(
beanClass
==
null
)
{
return
null
;
}
if
(!
beanClass
.
equals
(
parentBeanClass
)
&&
!
beanClass
.
isInheritor
(
parentBeanClass
,
true
))
{
if
(!
InheritanceUtil
.
isInheritorOrSelf
(
beanClass
,
parentBeanClass
,
true
))
{
return
null
;
}
...
...
@@ -340,10 +339,8 @@ public class ExtensionOrderConverter implements CustomReferenceConverter<String>
if
(
extensionTarget
!=
null
)
{
return
PomService
.
convertToPsi
(
extensionTarget
);
}
else
{
// shouldn't happen, fallback for additional safety
return
e
.
getXmlTag
();
}
// shouldn't happen, fallback for additional safety
return
e
.
getXmlTag
();
}
@NotNull
...
...
@@ -353,7 +350,7 @@ public class ExtensionOrderConverter implements CustomReferenceConverter<String>
@Nullable
String
mark
)
{
LookupElementBuilder
element
=
LookupElementBuilder
.
create
(
targetElement
,
id
);
if
(
module
!=
null
)
{
element
=
element
.
withTypeText
(
module
.
getName
(),
AllIcons
.
Actions
.
Module
,
false
);
element
=
element
.
withTypeText
(
module
.
getName
(),
ModuleType
.
get
(
module
).
getIcon
()
,
false
);
}
if
(
mark
!=
null
)
{
element
=
element
.
withTailText
(
" {"
+
mark
+
"}"
,
true
);
...
...
This diff is collapsed.
Click to expand it.
plugins/devkit/testData/codeInsight/orderAttributeCompletionLanguage.xml
+
1
-
1
View file @
60532516
...
...
@@ -10,7 +10,7 @@
<extensions
defaultExtensionNs=
"com.intellij"
>
<myEp7
id=
"id1"
language=
"JAVA"
/>
<!--suppress PluginXmlValidity -->
<myEp7
id=
"id2"
language=
"
ANY
"
/>
<myEp7
id=
"id2"
language=
"
any
"
/>
<myEp7
id=
"id3"
/>
<myEp7
id=
"id4"
language=
"XML"
/>
<myEp7
id=
"id5"
language=
"JAVA"
order=
"before <caret>"
/>
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment