Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Intellij Community
Commits
a75ea73e
Unverified
Commit
a75ea73e
authored
6 years ago
by
Vladimir Krivosheev
Browse files
Options
Download
Email Patches
Plain Diff
avoid expensive isSchemaFile()
parent
ba991f47
Branches unavailable
Tags unavailable
No related merge requests found
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
json/src/com/intellij/json/JsonUtil.java
+9
-0
json/src/com/intellij/json/JsonUtil.java
json/src/com/jetbrains/jsonSchema/ide/JsonSchemaService.java
+1
-2
json/src/com/jetbrains/jsonSchema/ide/JsonSchemaService.java
json/src/com/jetbrains/jsonSchema/impl/JsonSchemaInJsonFilesEnabler.java
+2
-5
...tbrains/jsonSchema/impl/JsonSchemaInJsonFilesEnabler.java
json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java
+4
-3
.../com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java
json/src/com/jetbrains/jsonSchema/widget/JsonSchemaStatusWidget.java
+2
-4
...m/jetbrains/jsonSchema/widget/JsonSchemaStatusWidget.java
with
18 additions
and
14 deletions
+18
-14
json/src/com/intellij/json/JsonUtil.java
+
9
-
0
View file @
a75ea73e
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package
com.intellij.json
;
import
com.intellij.json.psi.*
;
import
com.intellij.openapi.fileTypes.FileType
;
import
com.intellij.openapi.fileTypes.LanguageFileType
;
import
com.intellij.openapi.util.text.StringUtil
;
import
com.intellij.openapi.vfs.VirtualFile
;
import
com.intellij.psi.PsiElement
;
import
com.intellij.util.ObjectUtils
;
import
org.jetbrains.annotations.NotNull
;
...
...
@@ -82,4 +86,9 @@ public class JsonUtil {
}
return
-
1
;
}
public
static
boolean
isJsonFile
(
@NotNull
VirtualFile
file
)
{
FileType
type
=
file
.
getFileType
();
return
type
instanceof
LanguageFileType
&&
((
LanguageFileType
)
type
).
getLanguage
()
instanceof
JsonLanguage
;
}
}
This diff is collapsed.
Click to expand it.
json/src/com/jetbrains/jsonSchema/ide/JsonSchemaService.java
+
1
-
2
View file @
a75ea73e
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package
com.jetbrains.jsonSchema.ide
;
import
com.intellij.openapi.components.ServiceManager
;
import
com.intellij.openapi.project.Project
;
import
com.intellij.openapi.util.ModificationTracker
;
...
...
@@ -27,7 +26,7 @@ public interface JsonSchemaService {
static
boolean
isSchemaFile
(
@NotNull
PsiFile
psiFile
)
{
final
VirtualFile
file
=
psiFile
.
getViewProvider
().
getVirtualFile
();
JsonSchemaService
service
=
Impl
.
get
(
psiFile
.
getProject
());
return
service
.
is
ApplicableTo
File
(
file
)
&&
service
.
is
Schema
File
(
file
);
return
service
.
is
Schema
File
(
file
)
&&
service
.
is
ApplicableTo
File
(
file
);
}
boolean
isSchemaFile
(
@NotNull
VirtualFile
file
);
...
...
This diff is collapsed.
Click to expand it.
json/src/com/jetbrains/jsonSchema/impl/JsonSchemaInJsonFilesEnabler.java
+
2
-
5
View file @
a75ea73e
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package
com.jetbrains.jsonSchema.impl
;
import
com.intellij.json.JsonLanguage
;
import
com.intellij.openapi.fileTypes.FileType
;
import
com.intellij.openapi.fileTypes.LanguageFileType
;
import
com.intellij.json.JsonUtil
;
import
com.intellij.openapi.vfs.VirtualFile
;
import
com.jetbrains.jsonSchema.extension.JsonSchemaEnabler
;
public
class
JsonSchemaInJsonFilesEnabler
implements
JsonSchemaEnabler
{
@Override
public
boolean
isEnabledForFile
(
VirtualFile
file
)
{
FileType
type
=
file
.
getFileType
();
return
type
instanceof
LanguageFileType
&&
((
LanguageFileType
)
type
).
getLanguage
()
instanceof
JsonLanguage
;
return
JsonUtil
.
isJsonFile
(
file
);
}
}
This diff is collapsed.
Click to expand it.
json/src/com/jetbrains/jsonSchema/impl/JsonSchemaServiceImpl.java
+
4
-
3
View file @
a75ea73e
...
...
@@ -2,6 +2,7 @@
package
com.jetbrains.jsonSchema.impl
;
import
com.intellij.codeInsight.daemon.DaemonCodeAnalyzer
;
import
com.intellij.json.JsonUtil
;
import
com.intellij.openapi.application.ApplicationManager
;
import
com.intellij.openapi.diagnostic.Logger
;
import
com.intellij.openapi.project.Project
;
...
...
@@ -258,9 +259,9 @@ public class JsonSchemaServiceImpl implements JsonSchemaService {
@Override
public
boolean
isSchemaFile
(
@NotNull
VirtualFile
file
)
{
return
isMappedSchema
(
file
)
||
isSchemaByProvider
(
file
)
||
hasSchemaSchema
(
file
);
return
JsonUtil
.
isJsonFile
(
file
)
&&
(
isMappedSchema
(
file
)
||
isSchemaByProvider
(
file
)
||
hasSchemaSchema
(
file
)
)
;
}
public
boolean
isMappedSchema
(
@NotNull
VirtualFile
file
)
{
...
...
This diff is collapsed.
Click to expand it.
json/src/com/jetbrains/jsonSchema/widget/JsonSchemaStatusWidget.java
+
2
-
4
View file @
a75ea73e
...
...
@@ -178,10 +178,8 @@ class JsonSchemaStatusWidget extends EditorBasedStatusBarPopup {
});
}
private
boolean
isValidSchemaFile
(
VirtualFile
schemaFile
)
{
if
(
schemaFile
==
null
||
!
myService
.
isApplicableToFile
(
schemaFile
)
||
!
myService
.
isSchemaFile
(
schemaFile
))
return
false
;
FileType
type
=
schemaFile
.
getFileType
();
return
type
instanceof
LanguageFileType
&&
((
LanguageFileType
)
type
).
getLanguage
()
instanceof
JsonLanguage
;
private
boolean
isValidSchemaFile
(
@Nullable
VirtualFile
schemaFile
)
{
return
schemaFile
!=
null
&&
myService
.
isSchemaFile
(
schemaFile
)
&&
myService
.
isApplicableToFile
(
schemaFile
);
}
@Nullable
...
...
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
Menu
Projects
Groups
Snippets
Help