From a08e5d62dd2921b8d510c7bfd6bf03a36904fec8 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Sat, 19 Jun 2021 01:29:23 +0200 Subject: [PATCH] remove useless trailing semicolon from XML GitOrigin-RevId: 6449d1e50c931a16defc3badc443a0b969eb5a2c --- .../compiler/ChangeSourceFileSetTest.java | 2 +- .../fileTypes/impl/FileTypeManagerImpl.java | 21 +++++++------------ .../openapi/fileTypes/impl/FileTypesTest.java | 15 ++++++------- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/java/compiler/tests/com/intellij/compiler/ChangeSourceFileSetTest.java b/java/compiler/tests/com/intellij/compiler/ChangeSourceFileSetTest.java index 81a10ff1c7b4..831521245055 100644 --- a/java/compiler/tests/com/intellij/compiler/ChangeSourceFileSetTest.java +++ b/java/compiler/tests/com/intellij/compiler/ChangeSourceFileSetTest.java @@ -83,7 +83,7 @@ public class ChangeSourceFileSetTest extends BaseCompilerTestCase { TestFileSystemBuilder all = fs().file("A.class").file("Ignored.class").dir("IgnoredDir").file("B.class").dir("p").file("C.class"); assertOutput(m, all); - setIgnoredFiles(oldPatterns + "Ignored*;"); + setIgnoredFiles(oldPatterns + ";Ignored*"); make(m); assertOutput(m, fs().file("A.class")); diff --git a/platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/FileTypeManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/FileTypeManagerImpl.java index c082c2aa63d6..126b700f227d 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/FileTypeManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/FileTypeManagerImpl.java @@ -50,6 +50,7 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.Function; +import java.util.stream.Collectors; @State(name = "FileTypeManager", storages = @Storage("filetypes.xml"), additionalExportDirectory = FileTypeManagerImpl.FILE_SPEC) public class FileTypeManagerImpl extends FileTypeManagerEx implements PersistentStateComponent, Disposable { @@ -62,7 +63,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements Persistent // must be sorted @SuppressWarnings("SpellCheckingInspection") - static final String DEFAULT_IGNORED = "*.pyc;*.pyo;*.rbc;*.yarb;*~;.DS_Store;.git;.hg;.svn;CVS;__pycache__;_svn;vssver.scc;vssver2.scc;"; + static final String DEFAULT_IGNORED = "*.pyc;*.pyo;*.rbc;*.yarb;*~;.DS_Store;.git;.hg;.svn;CVS;__pycache__;_svn;vssver.scc;vssver2.scc"; @NonNls private static final String ELEMENT_EXTENSION_MAP = "extensionMap"; private final Set myDefaultTypes = CollectionFactory.createSmallMemoryFootprintSet(); @@ -108,7 +109,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements Persistent @NonNls static final String FILE_SPEC = "filetypes"; - public FileTypeManagerImpl() { + protected FileTypeManagerImpl() { NonLazySchemeProcessor abstractTypesProcessor = new NonLazySchemeProcessor<>() { @NotNull @Override @@ -841,7 +842,7 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements Persistent @NotNull public String getIgnoredFilesList() { Set masks = myIgnoredPatterns.getIgnoreMasks(); - return masks.isEmpty() ? "" : String.join(";", masks) + ";"; + return masks.isEmpty() ? "" : String.join(";", masks); } @Override @@ -1123,16 +1124,10 @@ public class FileTypeManagerImpl extends FileTypeManagerEx implements Persistent public Element getState() { Element state = new Element("state"); - Set masks = myIgnoredPatterns.getIgnoreMasks(); - String ignoreFiles; - if (masks.isEmpty()) { - ignoreFiles = ""; - } - else { - String[] strings = ArrayUtil.toStringArray(masks); - Arrays.sort(strings); - ignoreFiles = String.join(";", strings) + ";"; - } + String ignoreFiles = myIgnoredPatterns.getIgnoreMasks() + .stream() + .sorted() + .collect(Collectors.joining(";")); if (!ignoreFiles.equalsIgnoreCase(DEFAULT_IGNORED)) { // empty means empty list - we need to distinguish null and empty to apply or not to apply default value diff --git a/platform/platform-tests/testSrc/com/intellij/openapi/fileTypes/impl/FileTypesTest.java b/platform/platform-tests/testSrc/com/intellij/openapi/fileTypes/impl/FileTypesTest.java index 2017ea35352e..90a904a50f24 100644 --- a/platform/platform-tests/testSrc/com/intellij/openapi/fileTypes/impl/FileTypesTest.java +++ b/platform/platform-tests/testSrc/com/intellij/openapi/fileTypes/impl/FileTypesTest.java @@ -158,10 +158,10 @@ public class FileTypesTest extends HeavyPlatformTestCase { } public void testIgnoreOrder() { - WriteAction.run(() -> myFileTypeManager.setIgnoredFilesList("a;b;")); - assertEquals("a;b;", myFileTypeManager.getIgnoredFilesList()); - WriteAction.run(() -> myFileTypeManager.setIgnoredFilesList("b;a;")); - assertEquals("b;a;", myFileTypeManager.getIgnoredFilesList()); + WriteAction.run(() -> myFileTypeManager.setIgnoredFilesList("a;b")); + assertEquals("a;b", myFileTypeManager.getIgnoredFilesList()); + WriteAction.run(() -> myFileTypeManager.setIgnoredFilesList("b;a")); + assertEquals("b;a", myFileTypeManager.getIgnoredFilesList()); } public void testIgnoredFiles() throws IOException { @@ -915,11 +915,8 @@ public class FileTypesTest extends HeavyPlatformTestCase { public void testDEFAULT_IGNOREDIsSorted() { List strings = StringUtil.split(FileTypeManagerImpl.DEFAULT_IGNORED, ";"); String sorted = strings.stream().sorted().collect(Collectors.joining(";")); - for (int i = 0; i < strings.size(); i++) { - String string = strings.get(i); - String prev = i == 0 ? "" : strings.get(i - 1); - assertTrue("FileTypeManagerImpl.DEFAULT_IGNORED must be sorted, but got: '" + prev + "' >= '" + string + "'. This would be better:\n" + sorted, prev.compareTo(string) < 0); - } + + assertEquals("FileTypeManagerImpl.DEFAULT_IGNORED entries must be sorted", sorted, FileTypeManagerImpl.DEFAULT_IGNORED); } public void testRegisterUnregisterExtension() {