diff --git a/platform/platform-api/src/com/intellij/lexer/DummyLexer.java b/platform/core-api/src/com/intellij/lexer/DummyLexer.java similarity index 78% rename from platform/platform-api/src/com/intellij/lexer/DummyLexer.java rename to platform/core-api/src/com/intellij/lexer/DummyLexer.java index e20f4e575e0c..3d13df974da7 100644 --- a/platform/platform-api/src/com/intellij/lexer/DummyLexer.java +++ b/platform/core-api/src/com/intellij/lexer/DummyLexer.java @@ -16,6 +16,7 @@ package com.intellij.lexer; import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; public class DummyLexer extends LexerBase { private CharSequence myBuffer; @@ -27,43 +28,55 @@ public class DummyLexer extends LexerBase { myTokenType = type; } - public void start(final CharSequence buffer, final int startOffset, final int endOffset, final int initialState) { + @Override + public void start(@NotNull final CharSequence buffer, final int startOffset, final int endOffset, final int initialState) { myBuffer = buffer; myStartOffset = startOffset; myEndOffset = endOffset; } + @NotNull + @Override public CharSequence getBufferSequence() { return myBuffer; } + @Override public int getState() { return 0; } + @Override public IElementType getTokenType() { - return (myStartOffset < myEndOffset ? myTokenType : null); + return myStartOffset < myEndOffset ? myTokenType : null; } + @Override public int getTokenStart() { return myStartOffset; } + @Override public int getTokenEnd() { return myEndOffset; } + @Override public void advance() { myStartOffset = myEndOffset; } + @NotNull + @Override public LexerPosition getCurrentPosition() { return new LexerPositionImpl(0, getState()); } - public void restore(LexerPosition position) { + @Override + public void restore(@NotNull LexerPosition position) { } + @Override public int getBufferEnd() { return myEndOffset; } diff --git a/platform/platform-api/src/com/intellij/lexer/EmptyLexer.java b/platform/core-api/src/com/intellij/lexer/EmptyLexer.java similarity index 100% rename from platform/platform-api/src/com/intellij/lexer/EmptyLexer.java rename to platform/core-api/src/com/intellij/lexer/EmptyLexer.java diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java similarity index 87% rename from platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java rename to platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java index da2268bb1119..2378fd53c2f2 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java +++ b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeExtensionFactory.java @@ -19,13 +19,14 @@ */ package com.intellij.openapi.fileTypes; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.util.KeyedExtensionFactory; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; public class FileTypeExtensionFactory extends KeyedExtensionFactory { public FileTypeExtensionFactory(@NotNull final Class interfaceClass, @NonNls @NotNull final String epName) { - super(interfaceClass, epName); + super(interfaceClass, epName, ApplicationManager.getApplication().getPicoContainer()); } @Override diff --git a/platform/editor-ui-api/editor-ui-api.iml b/platform/editor-ui-api/editor-ui-api.iml index a47a2d5b756f..3de8227812bb 100644 --- a/platform/editor-ui-api/editor-ui-api.iml +++ b/platform/editor-ui-api/editor-ui-api.iml @@ -11,6 +11,7 @@ + diff --git a/platform/platform-api/src/com/intellij/ide/highlighter/HighlighterFactory.java b/platform/editor-ui-api/src/com/intellij/ide/highlighter/HighlighterFactory.java similarity index 78% rename from platform/platform-api/src/com/intellij/ide/highlighter/HighlighterFactory.java rename to platform/editor-ui-api/src/com/intellij/ide/highlighter/HighlighterFactory.java index 8371c4ae6a1a..e94ba794dcdf 100644 --- a/platform/platform-api/src/com/intellij/ide/highlighter/HighlighterFactory.java +++ b/platform/editor-ui-api/src/com/intellij/ide/highlighter/HighlighterFactory.java @@ -27,31 +27,38 @@ import org.jetbrains.annotations.NotNull; public class HighlighterFactory { private HighlighterFactory() {} - public static EditorHighlighter createHighlighter(SyntaxHighlighter highlighter, EditorColorsScheme settings) { + @NotNull + public static EditorHighlighter createHighlighter(SyntaxHighlighter highlighter, @NotNull EditorColorsScheme settings) { return EditorHighlighterFactory.getInstance().createEditorHighlighter(highlighter, settings); } - public static EditorHighlighter createHighlighter(Project project, String fileName) { + @NotNull + public static EditorHighlighter createHighlighter(Project project, @NotNull String fileName) { return EditorHighlighterFactory.getInstance().createEditorHighlighter(project, fileName); } - public static EditorHighlighter createHighlighter(Project project, VirtualFile file) { + @NotNull + public static EditorHighlighter createHighlighter(Project project, @NotNull VirtualFile file) { return EditorHighlighterFactory.getInstance().createEditorHighlighter(project, file); } - public static EditorHighlighter createHighlighter(Project project, FileType fileType) { + @NotNull + public static EditorHighlighter createHighlighter(Project project, @NotNull FileType fileType) { return EditorHighlighterFactory.getInstance().createEditorHighlighter(project, fileType); } - public static EditorHighlighter createHighlighter(EditorColorsScheme settings, String fileName, Project project) { + @NotNull + public static EditorHighlighter createHighlighter(@NotNull EditorColorsScheme settings, @NotNull String fileName, Project project) { return EditorHighlighterFactory.getInstance().createEditorHighlighter(settings, fileName, project); } - public static EditorHighlighter createHighlighter(FileType fileType, EditorColorsScheme settings, Project project) { + @NotNull + public static EditorHighlighter createHighlighter(@NotNull FileType fileType, @NotNull EditorColorsScheme settings, Project project) { return EditorHighlighterFactory.getInstance().createEditorHighlighter(fileType, settings, project); } - public static EditorHighlighter createHighlighter(@NotNull VirtualFile vFile, EditorColorsScheme settings, Project project) { + @NotNull + public static EditorHighlighter createHighlighter(@NotNull VirtualFile vFile, @NotNull EditorColorsScheme settings, Project project) { return EditorHighlighterFactory.getInstance().createEditorHighlighter(vFile, settings, project); } } \ No newline at end of file diff --git a/platform/platform-api/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactory.java b/platform/editor-ui-api/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactory.java similarity index 69% rename from platform/platform-api/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactory.java rename to platform/editor-ui-api/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactory.java index 597b20a86a5b..85778571194b 100644 --- a/platform/platform-api/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactory.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/editor/highlighter/EditorHighlighterFactory.java @@ -33,17 +33,24 @@ public abstract class EditorHighlighterFactory { return ServiceManager.getService(EditorHighlighterFactory.class); } - public abstract EditorHighlighter createEditorHighlighter(final SyntaxHighlighter syntaxHighlighter, final EditorColorsScheme colors); + @NotNull + public abstract EditorHighlighter createEditorHighlighter(final SyntaxHighlighter syntaxHighlighter, @NotNull EditorColorsScheme colors); - public abstract EditorHighlighter createEditorHighlighter(final FileType fileType, final EditorColorsScheme settings, final Project project); + @NotNull + public abstract EditorHighlighter createEditorHighlighter(@NotNull FileType fileType, @NotNull EditorColorsScheme settings, final Project project); - public abstract EditorHighlighter createEditorHighlighter(final Project project, final FileType fileType); + @NotNull + public abstract EditorHighlighter createEditorHighlighter(final Project project, @NotNull FileType fileType); - public abstract EditorHighlighter createEditorHighlighter(@NotNull final VirtualFile file, final EditorColorsScheme globalScheme, @Nullable final Project project); + @NotNull + public abstract EditorHighlighter createEditorHighlighter(@NotNull final VirtualFile file, @NotNull EditorColorsScheme globalScheme, @Nullable final Project project); - public abstract EditorHighlighter createEditorHighlighter(final Project project, final VirtualFile file); + @NotNull + public abstract EditorHighlighter createEditorHighlighter(final Project project, @NotNull VirtualFile file); - public abstract EditorHighlighter createEditorHighlighter(final Project project, final String fileName); + @NotNull + public abstract EditorHighlighter createEditorHighlighter(final Project project, @NotNull String fileName); - public abstract EditorHighlighter createEditorHighlighter(final EditorColorsScheme settings, final String fileName, @Nullable final Project project); + @NotNull + public abstract EditorHighlighter createEditorHighlighter(@NotNull EditorColorsScheme settings, @NotNull String fileName, @Nullable final Project project); } \ No newline at end of file diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighter.java b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighter.java similarity index 92% rename from platform/platform-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighter.java rename to platform/editor-ui-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighter.java index 08a800092c01..a1105abf9862 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighter.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighter.java @@ -23,13 +23,15 @@ import com.intellij.psi.tree.IElementType; import org.jetbrains.annotations.NotNull; public class PlainSyntaxHighlighter implements SyntaxHighlighter { - private static final TextAttributesKey[] ATTRS = new TextAttributesKey[] {HighlighterColors.TEXT}; + private static final TextAttributesKey[] ATTRS = {HighlighterColors.TEXT}; + @Override @NotNull public Lexer getHighlightingLexer() { return new EmptyLexer(); } + @Override @NotNull public TextAttributesKey[] getTokenHighlights(IElementType tokenType) { return ATTRS; diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighterFactory.java b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighterFactory.java similarity index 99% rename from platform/platform-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighterFactory.java rename to platform/editor-ui-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighterFactory.java index b19651ca8321..df5a83efe454 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighterFactory.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/PlainSyntaxHighlighterFactory.java @@ -28,4 +28,4 @@ public class PlainSyntaxHighlighterFactory extends SyntaxHighlighterFactory { public SyntaxHighlighter getSyntaxHighlighter(final Project project, final VirtualFile virtualFile) { return new PlainSyntaxHighlighter(); } -} \ No newline at end of file +} diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighter.java b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighter.java similarity index 99% rename from platform/platform-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighter.java rename to platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighter.java index a6cf7a35de95..d6c7dc3c73d1 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighter.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighter.java @@ -53,4 +53,4 @@ public interface SyntaxHighlighter { */ @NotNull TextAttributesKey[] getTokenHighlights(IElementType tokenType); -} \ No newline at end of file +} diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterFactory.java b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterFactory.java similarity index 95% rename from platform/platform-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterFactory.java rename to platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterFactory.java index ad697f946707..7f9fc89fb9bb 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterFactory.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterFactory.java @@ -50,7 +50,7 @@ public abstract class SyntaxHighlighterFactory { * @return {@code SyntaxHighlighter} interface implementation for the given file type */ @Nullable - public static SyntaxHighlighter getSyntaxHighlighter(FileType fileType, @Nullable Project project, @Nullable VirtualFile file) { + public static SyntaxHighlighter getSyntaxHighlighter(@NotNull FileType fileType, @Nullable Project project, @Nullable VirtualFile file) { return SyntaxHighlighter.PROVIDER.create(fileType, project, file); } diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterLanguageFactory.java b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterLanguageFactory.java similarity index 99% rename from platform/platform-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterLanguageFactory.java rename to platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterLanguageFactory.java index a223fa0e08ed..dae292f0c7ae 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterLanguageFactory.java +++ b/platform/editor-ui-api/src/com/intellij/openapi/fileTypes/SyntaxHighlighterLanguageFactory.java @@ -25,4 +25,4 @@ public class SyntaxHighlighterLanguageFactory extends LanguageExtension + + diff --git a/platform/lang-impl/src/com/intellij/ide/todo/TodoConfiguration.java b/platform/editor-ui-ex/src/com/intellij/ide/todo/TodoConfiguration.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/todo/TodoConfiguration.java rename to platform/editor-ui-ex/src/com/intellij/ide/todo/TodoConfiguration.java diff --git a/platform/lang-impl/src/com/intellij/ide/todo/TodoIndexPatternProvider.java b/platform/editor-ui-ex/src/com/intellij/ide/todo/TodoIndexPatternProvider.java similarity index 100% rename from platform/lang-impl/src/com/intellij/ide/todo/TodoIndexPatternProvider.java rename to platform/editor-ui-ex/src/com/intellij/ide/todo/TodoIndexPatternProvider.java diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LexerEditorHighlighter.java b/platform/editor-ui-ex/src/com/intellij/openapi/editor/ex/util/LexerEditorHighlighter.java similarity index 100% rename from platform/platform-impl/src/com/intellij/openapi/editor/ex/util/LexerEditorHighlighter.java rename to platform/editor-ui-ex/src/com/intellij/openapi/editor/ex/util/LexerEditorHighlighter.java diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/IndexTodoCacheManagerImpl.java b/platform/editor-ui-ex/src/com/intellij/psi/impl/cache/impl/IndexTodoCacheManagerImpl.java similarity index 100% rename from platform/lang-impl/src/com/intellij/psi/impl/cache/impl/IndexTodoCacheManagerImpl.java rename to platform/editor-ui-ex/src/com/intellij/psi/impl/cache/impl/IndexTodoCacheManagerImpl.java diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/PlatformIdTableBuilding.java b/platform/editor-ui-ex/src/com/intellij/psi/impl/cache/impl/id/PlatformIdTableBuilding.java similarity index 85% rename from platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/PlatformIdTableBuilding.java rename to platform/editor-ui-ex/src/com/intellij/psi/impl/cache/impl/id/PlatformIdTableBuilding.java index 14da4f8231e9..556db38f3b54 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/id/PlatformIdTableBuilding.java +++ b/platform/editor-ui-ex/src/com/intellij/psi/impl/cache/impl/id/PlatformIdTableBuilding.java @@ -23,11 +23,9 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.ex.util.LexerEditorHighlighter; import com.intellij.openapi.editor.highlighter.EditorHighlighter; import com.intellij.openapi.editor.highlighter.HighlighterIterator; -import com.intellij.openapi.fileTypes.FileType; -import com.intellij.openapi.fileTypes.FileTypes; -import com.intellij.openapi.fileTypes.LanguageFileType; -import com.intellij.openapi.fileTypes.StdFileTypes; +import com.intellij.openapi.fileTypes.*; import com.intellij.openapi.fileTypes.impl.CustomSyntaxTableFileType; +import com.intellij.openapi.util.Key; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.CustomHighlighterTokenType; import com.intellij.psi.impl.cache.impl.BaseFilterLexer; @@ -41,7 +39,6 @@ import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.indexing.DataIndexer; -import com.intellij.util.indexing.FileBasedIndexImpl; import com.intellij.util.indexing.FileContent; import com.intellij.util.indexing.SubstitutedFileType; import org.jetbrains.annotations.NotNull; @@ -57,10 +54,9 @@ import java.util.regex.Pattern; * Author: dmitrylomov */ public abstract class PlatformIdTableBuilding { - static final HashMap> ourTodoIndexers = - new HashMap>(); - private static final TokenSet ABSTRACT_FILE_COMMENT_TOKENS = - TokenSet.create(CustomHighlighterTokenType.LINE_COMMENT, CustomHighlighterTokenType.MULTI_LINE_COMMENT); + public static final Key EDITOR_HIGHLIGHTER = new Key("Editor"); + private static final Map> ourTodoIndexers = new HashMap>(); + private static final TokenSet ABSTRACT_FILE_COMMENT_TOKENS = TokenSet.create(CustomHighlighterTokenType.LINE_COMMENT, CustomHighlighterTokenType.MULTI_LINE_COMMENT); private PlatformIdTableBuilding() {} @@ -112,19 +108,18 @@ public abstract class PlatformIdTableBuilding { } @Deprecated - public static void registerTodoIndexer(FileType fileType, DataIndexer indexer) { + public static void registerTodoIndexer(@NotNull FileType fileType, DataIndexer indexer) { ourTodoIndexers.put(fileType, indexer); } - public static boolean isTodoIndexerRegistered(FileType fileType) { - return ourTodoIndexers.containsKey(fileType) || TodoIndexers.INSTANCE.forFileType(fileType) != null; + public static boolean isTodoIndexerRegistered(@NotNull FileType fileType) { + return ourTodoIndexers.containsKey(fileType) || TodoIndexers.INSTANCE.forFileType(fileType) != null || fileType instanceof InternalFileType; } private static class CompositeTodoIndexer implements DataIndexer { - private final DataIndexer[] indexers; - public CompositeTodoIndexer(DataIndexer... indexers) { + public CompositeTodoIndexer(@NotNull DataIndexer... indexers) { this.indexers = indexers; } @@ -163,7 +158,7 @@ public abstract class PlatformIdTableBuilding { final OccurrenceConsumer occurrenceConsumer = new OccurrenceConsumer(null, true); EditorHighlighter highlighter; - final EditorHighlighter editorHighlighter = inputData.getUserData(FileBasedIndexImpl.EDITOR_HIGHLIGHTER); + final EditorHighlighter editorHighlighter = inputData.getUserData(EDITOR_HIGHLIGHTER); if (editorHighlighter != null && checkCanUseCachedEditorHighlighter(chars, editorHighlighter)) { highlighter = editorHighlighter; } @@ -241,15 +236,15 @@ public abstract class PlatformIdTableBuilding { } static { - IdTableBuilding.registerIdIndexer(FileTypes.PLAIN_TEXT, new IdTableBuilding.PlainTextIndexer()); - registerTodoIndexer(FileTypes.PLAIN_TEXT, new PlainTextTodoIndexer()); + IdTableBuilding.registerIdIndexer(PlainTextFileType.INSTANCE, new IdTableBuilding.PlainTextIndexer()); + registerTodoIndexer(PlainTextFileType.INSTANCE, new PlainTextTodoIndexer()); - IdTableBuilding.registerIdIndexer(StdFileTypes.IDEA_MODULE, null); - IdTableBuilding.registerIdIndexer(StdFileTypes.IDEA_WORKSPACE, null); - IdTableBuilding.registerIdIndexer(StdFileTypes.IDEA_PROJECT, null); + //IdTableBuilding.registerIdIndexer(StdFileTypes.IDEA_MODULE, null); + //IdTableBuilding.registerIdIndexer(StdFileTypes.IDEA_WORKSPACE, null); + //IdTableBuilding.registerIdIndexer(StdFileTypes.IDEA_PROJECT, null); - registerTodoIndexer(StdFileTypes.IDEA_MODULE, null); - registerTodoIndexer(StdFileTypes.IDEA_WORKSPACE, null); - registerTodoIndexer(StdFileTypes.IDEA_PROJECT, null); + //registerTodoIndexer(StdFileTypes.IDEA_MODULE, null); + //registerTodoIndexer(StdFileTypes.IDEA_WORKSPACE, null); + //registerTodoIndexer(StdFileTypes.IDEA_PROJECT, null); } } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java b/platform/editor-ui-ex/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java similarity index 97% rename from platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java rename to platform/editor-ui-ex/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java index 5139707e75e5..b9f8ec632b3c 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java +++ b/platform/editor-ui-ex/src/com/intellij/psi/impl/cache/impl/todo/TodoIndex.java @@ -22,8 +22,6 @@ import com.intellij.lang.ParserDefinition; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.LanguageFileType; import com.intellij.openapi.fileTypes.impl.CustomSyntaxTableFileType; -import com.intellij.openapi.project.ProjectCoreUtil; -import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.impl.cache.impl.id.PlatformIdTableBuilding; import com.intellij.psi.search.IndexPatternProvider; @@ -113,7 +111,7 @@ public class TodoIndex extends FileBasedIndexExtension private final FileBasedIndex.InputFilter myInputFilter = new FileBasedIndex.InputFilter() { @Override public boolean acceptInput(final VirtualFile file) { - if (!(file.getFileSystem() instanceof LocalFileSystem)) { + if (!file.isInLocalFileSystem()) { return false; // do not index TODOs in library sources } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternOccurrenceImpl.java b/platform/editor-ui-ex/src/com/intellij/psi/impl/search/IndexPatternOccurrenceImpl.java similarity index 100% rename from platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternOccurrenceImpl.java rename to platform/editor-ui-ex/src/com/intellij/psi/impl/search/IndexPatternOccurrenceImpl.java diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java b/platform/editor-ui-ex/src/com/intellij/psi/impl/search/IndexPatternSearcher.java similarity index 100% rename from platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java rename to platform/editor-ui-ex/src/com/intellij/psi/impl/search/IndexPatternSearcher.java diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/LightIndexPatternSearch.java b/platform/editor-ui-ex/src/com/intellij/psi/impl/search/LightIndexPatternSearch.java similarity index 100% rename from platform/lang-impl/src/com/intellij/psi/impl/search/LightIndexPatternSearch.java rename to platform/editor-ui-ex/src/com/intellij/psi/impl/search/LightIndexPatternSearch.java diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/LightIndexPatternSearcher.java b/platform/editor-ui-ex/src/com/intellij/psi/impl/search/LightIndexPatternSearcher.java similarity index 100% rename from platform/lang-impl/src/com/intellij/psi/impl/search/LightIndexPatternSearcher.java rename to platform/editor-ui-ex/src/com/intellij/psi/impl/search/LightIndexPatternSearcher.java diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/PsiTodoSearchHelperImpl.java b/platform/editor-ui-ex/src/com/intellij/psi/impl/search/PsiTodoSearchHelperImpl.java similarity index 100% rename from platform/lang-impl/src/com/intellij/psi/impl/search/PsiTodoSearchHelperImpl.java rename to platform/editor-ui-ex/src/com/intellij/psi/impl/search/PsiTodoSearchHelperImpl.java diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/TodoItemsCreator.java b/platform/editor-ui-ex/src/com/intellij/psi/impl/search/TodoItemsCreator.java similarity index 100% rename from platform/lang-impl/src/com/intellij/psi/impl/search/TodoItemsCreator.java rename to platform/editor-ui-ex/src/com/intellij/psi/impl/search/TodoItemsCreator.java diff --git a/platform/platform-api/src/com/intellij/openapi/util/KeyedExtensionFactory.java b/platform/extensions/src/com/intellij/openapi/util/KeyedExtensionFactory.java similarity index 92% rename from platform/platform-api/src/com/intellij/openapi/util/KeyedExtensionFactory.java rename to platform/extensions/src/com/intellij/openapi/util/KeyedExtensionFactory.java index 9827e2f25319..dee255de09c4 100644 --- a/platform/platform-api/src/com/intellij/openapi/util/KeyedExtensionFactory.java +++ b/platform/extensions/src/com/intellij/openapi/util/KeyedExtensionFactory.java @@ -15,12 +15,12 @@ */ package com.intellij.openapi.util; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.extensions.KeyedFactoryEPBean; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; +import org.picocontainer.PicoContainer; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; @@ -32,10 +32,12 @@ import java.lang.reflect.Proxy; public abstract class KeyedExtensionFactory { private final Class myInterfaceClass; private final ExtensionPointName myEpName; + private final PicoContainer myPicoContainer; - public KeyedExtensionFactory(@NotNull final Class interfaceClass, @NonNls @NotNull final String epName) { + public KeyedExtensionFactory(@NotNull final Class interfaceClass, @NonNls @NotNull final String epName, @NotNull PicoContainer picoContainer) { myInterfaceClass = interfaceClass; myEpName = new ExtensionPointName(epName); + myPicoContainer = picoContainer; } @NotNull @@ -63,7 +65,7 @@ public abstract class KeyedExtensionFactory { if (Comparing.strEqual(getKey(key), epBean.key)) { try { if (epBean.implementationClass != null) { - return (T)epBean.instantiate(epBean.implementationClass, ApplicationManager.getApplication().getPicoContainer()); + return (T)epBean.instantiate(epBean.implementationClass, myPicoContainer); } } catch (Exception e) { @@ -80,10 +82,10 @@ public abstract class KeyedExtensionFactory { if (Comparing.strEqual(epBean.key, key, true)) { try { if (epBean.implementationClass != null) { - result = epBean.instantiate(epBean.implementationClass, ApplicationManager.getApplication().getPicoContainer()); + result = epBean.instantiate(epBean.implementationClass, myPicoContainer); } else { - Object factory = epBean.instantiate(epBean.factoryClass, ApplicationManager.getApplication().getPicoContainer()); + Object factory = epBean.instantiate(epBean.factoryClass, myPicoContainer); result = method.invoke(factory, args); } if (result != null) { diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/TodoCacheManager.java b/platform/indexing-impl/src/com/intellij/psi/impl/cache/TodoCacheManager.java similarity index 100% rename from platform/lang-impl/src/com/intellij/psi/impl/cache/TodoCacheManager.java rename to platform/indexing-impl/src/com/intellij/psi/impl/cache/TodoCacheManager.java diff --git a/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/id/IdTableBuilding.java b/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/id/IdTableBuilding.java index 78861024d61b..59f0a6efae04 100644 --- a/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/id/IdTableBuilding.java +++ b/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/id/IdTableBuilding.java @@ -22,6 +22,7 @@ import com.intellij.lang.cacheBuilder.*; import com.intellij.lang.findUsages.FindUsagesProvider; import com.intellij.lang.findUsages.LanguageFindUsages; import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.fileTypes.InternalFileType; import com.intellij.openapi.fileTypes.LanguageFileType; import com.intellij.openapi.fileTypes.impl.CustomSyntaxTableFileType; import com.intellij.psi.CustomHighlighterTokenType; @@ -65,15 +66,15 @@ public class IdTableBuilding { } } - private static final HashMap ourIdIndexers = new HashMap(); + private static final Map ourIdIndexers = new HashMap(); @Deprecated - public static void registerIdIndexer(FileType fileType, FileTypeIdIndexer indexer) { + public static void registerIdIndexer(@NotNull FileType fileType, FileTypeIdIndexer indexer) { ourIdIndexers.put(fileType, indexer); } - public static boolean isIdIndexerRegistered(FileType fileType) { - return ourIdIndexers.containsKey(fileType) || IdIndexers.INSTANCE.forFileType(fileType) != null; + public static boolean isIdIndexerRegistered(@NotNull FileType fileType) { + return ourIdIndexers.containsKey(fileType) || IdIndexers.INSTANCE.forFileType(fileType) != null || fileType instanceof InternalFileType; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndexers.java b/platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndexers.java similarity index 100% rename from platform/lang-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndexers.java rename to platform/indexing-impl/src/com/intellij/psi/impl/cache/impl/todo/TodoIndexers.java diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternBuilder.java b/platform/indexing-impl/src/com/intellij/psi/impl/search/IndexPatternBuilder.java similarity index 89% rename from platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternBuilder.java rename to platform/indexing-impl/src/com/intellij/psi/impl/search/IndexPatternBuilder.java index 65e87124b6c5..167ae038647c 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternBuilder.java +++ b/platform/indexing-impl/src/com/intellij/psi/impl/search/IndexPatternBuilder.java @@ -21,6 +21,7 @@ import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.psi.PsiFile; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** @@ -30,9 +31,9 @@ public interface IndexPatternBuilder { ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.indexPatternBuilder"); @Nullable - Lexer getIndexingLexer(PsiFile file); + Lexer getIndexingLexer(@NotNull PsiFile file); @Nullable - TokenSet getCommentTokenSet(PsiFile file); + TokenSet getCommentTokenSet(@NotNull PsiFile file); int getCommentStartDelta(IElementType tokenType); int getCommentEndDelta(IElementType tokenType); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java b/platform/indexing-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java similarity index 99% rename from platform/lang-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java rename to platform/indexing-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java index 708a20fa7403..07a6bf201151 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java +++ b/platform/indexing-impl/src/com/intellij/psi/impl/search/TodoItemImpl.java @@ -1,4 +1,3 @@ - /* * Copyright 2000-2009 JetBrains s.r.o. * @@ -68,4 +67,4 @@ public class TodoItemImpl implements TodoItem { myEndOffset == todoItem.myEndOffset && myPattern.equals(todoItem.myPattern); } -} \ No newline at end of file +} diff --git a/platform/lang-api/src/com/intellij/openapi/roots/ui/OrderRootTypeUIFactory.java b/platform/lang-api/src/com/intellij/openapi/roots/ui/OrderRootTypeUIFactory.java index 14c0e467204d..8152efd3984e 100644 --- a/platform/lang-api/src/com/intellij/openapi/roots/ui/OrderRootTypeUIFactory.java +++ b/platform/lang-api/src/com/intellij/openapi/roots/ui/OrderRootTypeUIFactory.java @@ -20,6 +20,7 @@ */ package com.intellij.openapi.roots.ui; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.ui.SdkPathEditor; import com.intellij.openapi.roots.OrderRootType; @@ -29,7 +30,9 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; public interface OrderRootTypeUIFactory { - KeyedExtensionFactory FACTORY = new KeyedExtensionFactory(OrderRootTypeUIFactory.class, "com.intellij.OrderRootTypeUI") { + KeyedExtensionFactory FACTORY = new KeyedExtensionFactory(OrderRootTypeUIFactory.class, "com.intellij.OrderRootTypeUI", + ApplicationManager + .getApplication().getPicoContainer()) { @Override public String getKey(@NotNull final OrderRootType key) { return key.name(); diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java index eb1a7e807751..436fdb93f36f 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -30,7 +30,6 @@ import com.intellij.openapi.application.ModalityState; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Document; -import com.intellij.openapi.editor.highlighter.EditorHighlighter; import com.intellij.openapi.editor.impl.EditorHighlighterCache; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileEditor.FileDocumentManager; @@ -57,6 +56,7 @@ import com.intellij.openapi.vfs.newvfs.persistent.FlushingDaemon; import com.intellij.openapi.vfs.newvfs.persistent.PersistentFS; import com.intellij.psi.*; import com.intellij.psi.impl.PsiDocumentTransactionListener; +import com.intellij.psi.impl.cache.impl.id.PlatformIdTableBuilding; import com.intellij.psi.impl.source.PsiFileImpl; import com.intellij.psi.search.EverythingGlobalScope; import com.intellij.psi.search.GlobalSearchScope; @@ -1551,7 +1551,7 @@ public class FileBasedIndexImpl extends FileBasedIndex { initFileContent(newFc, project, dominantContentFile); if (content instanceof AuthenticContent) { - newFc.putUserData(EDITOR_HIGHLIGHTER, EditorHighlighterCache.getEditorHighlighterForCachesBuilding(document)); + newFc.putUserData(PlatformIdTableBuilding.EDITOR_HIGHLIGHTER, EditorHighlighterCache.getEditorHighlighterForCachesBuilding(document)); } final int inputId = Math.abs(getFileId(vFile)); @@ -1571,8 +1571,6 @@ public class FileBasedIndexImpl extends FileBasedIndex { private final TaskQueue myContentlessIndicesUpdateQueue = new TaskQueue(10000); - public static final Key EDITOR_HIGHLIGHTER = new Key("Editor"); - @Nullable private PsiFile findDominantPsiForDocument(@NotNull Document document, @Nullable Project project) { synchronized (myTransactionMap) {