YAML Support Layer Code Cleanup
diff --git a/ide/languages.yaml/nbproject/project.xml b/ide/languages.yaml/nbproject/project.xml
index 09f58a9..d634621 100644
--- a/ide/languages.yaml/nbproject/project.xml
+++ b/ide/languages.yaml/nbproject/project.xml
@@ -142,6 +142,14 @@
</run-dependency>
</dependency>
<dependency>
+ <code-name-base>org.openide.awt</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <specification-version>7.85</specification-version>
+ </run-dependency>
+ </dependency>
+ <dependency>
<code-name-base>org.openide.filesystems</code-name-base>
<build-prerequisite/>
<compile-dependency/>
@@ -150,30 +158,6 @@
</run-dependency>
</dependency>
<dependency>
- <code-name-base>org.openide.loaders</code-name-base>
- <build-prerequisite/>
- <compile-dependency/>
- <run-dependency>
- <specification-version>7.61</specification-version>
- </run-dependency>
- </dependency>
- <dependency>
- <code-name-base>org.openide.nodes</code-name-base>
- <build-prerequisite/>
- <compile-dependency/>
- <run-dependency>
- <specification-version>7.28</specification-version>
- </run-dependency>
- </dependency>
- <dependency>
- <code-name-base>org.openide.util.ui</code-name-base>
- <build-prerequisite/>
- <compile-dependency/>
- <run-dependency>
- <specification-version>9.3</specification-version>
- </run-dependency>
- </dependency>
- <dependency>
<code-name-base>org.openide.util</code-name-base>
<build-prerequisite/>
<compile-dependency/>
@@ -190,6 +174,14 @@
</run-dependency>
</dependency>
<dependency>
+ <code-name-base>org.openide.util.ui</code-name-base>
+ <build-prerequisite/>
+ <compile-dependency/>
+ <run-dependency>
+ <specification-version>9.3</specification-version>
+ </run-dependency>
+ </dependency>
+ <dependency>
<code-name-base>org.openide.windows</code-name-base>
<build-prerequisite/>
<compile-dependency/>
diff --git a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/EmbeddedSectionsHighlighting.java b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/EmbeddedSectionsHighlighting.java
index 964f454..6711aad 100644
--- a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/EmbeddedSectionsHighlighting.java
+++ b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/EmbeddedSectionsHighlighting.java
@@ -27,6 +27,7 @@
import javax.swing.text.Document;
import javax.swing.text.StyleConstants;
import org.netbeans.api.editor.mimelookup.MimeLookup;
+import org.netbeans.api.editor.mimelookup.MimeRegistration;
import org.netbeans.api.editor.settings.AttributesUtilities;
import org.netbeans.api.editor.settings.FontColorSettings;
import org.netbeans.api.lexer.TokenHierarchy;
@@ -36,6 +37,7 @@
import org.netbeans.editor.BaseDocument;
import org.netbeans.editor.Utilities;
import org.netbeans.lib.editor.util.swing.DocumentUtilities;
+import static org.netbeans.modules.languages.yaml.YamlTokenId.YAML_MIME_TYPE;
import org.netbeans.spi.editor.highlighting.HighlightsLayer;
import org.netbeans.spi.editor.highlighting.HighlightsLayerFactory;
import org.netbeans.spi.editor.highlighting.HighlightsSequence;
@@ -255,6 +257,7 @@
}
} // End of Highlights class
+ @MimeRegistration(mimeType = YAML_MIME_TYPE, service = HighlightsLayerFactory.class)
public static final class Factory implements HighlightsLayerFactory {
@Override
diff --git a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlDataObject.java b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlDataObject.java
deleted file mode 100644
index d995063..0000000
--- a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlDataObject.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-package org.netbeans.modules.languages.yaml;
-
-import java.io.IOException;
-import org.netbeans.core.spi.multiview.MultiViewElement;
-import org.netbeans.core.spi.multiview.text.MultiViewEditorElement;
-import org.openide.filesystems.FileObject;
-import org.openide.loaders.DataNode;
-import org.openide.loaders.DataObjectExistsException;
-import org.openide.loaders.MultiDataObject;
-import org.openide.loaders.MultiFileLoader;
-import org.openide.nodes.Children;
-import org.openide.nodes.Node;
-import org.openide.util.Lookup;
-import org.openide.util.NbBundle;
-import org.openide.windows.TopComponent;
-
-/**
- *
- * @author Ondrej Brejla <obrejla@netbeans.org>
- */
-public class YamlDataObject extends MultiDataObject {
-
- public YamlDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException {
- super(pf, loader);
- registerEditor(YamlTokenId.YAML_MIME_TYPE, true);
- }
-
- @Override
- protected Node createNodeDelegate() {
- return new DataNode(this, Children.LEAF, getLookup());
- }
-
- @Override
- protected int associateLookup() {
- return 1;
- }
-
- @NbBundle.Messages("Source=&Source")
- @MultiViewElement.Registration(
- displayName="#Source",
- iconBase="org/netbeans/modules/languages/yaml/yaml_files_16.png",
- persistenceType=TopComponent.PERSISTENCE_ONLY_OPENED,
- mimeType=YamlTokenId.YAML_MIME_TYPE,
- preferredID="neon.source",
- position=1
- )
- public static MultiViewEditorElement createMultiViewEditorElement(Lookup context) {
- return new MultiViewEditorElement(context);
- }
-
-}
diff --git a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlLanguage.java b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlLanguage.java
index 420a5ce..218e7e2 100644
--- a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlLanguage.java
+++ b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlLanguage.java
@@ -19,6 +19,8 @@
package org.netbeans.modules.languages.yaml;
import org.netbeans.api.lexer.Language;
+import org.netbeans.core.spi.multiview.MultiViewElement;
+import org.netbeans.core.spi.multiview.text.MultiViewEditorElement;
import org.netbeans.modules.csl.api.CodeCompletionHandler;
import org.netbeans.modules.csl.api.InstantRenamer;
import org.netbeans.modules.csl.api.KeystrokeHandler;
@@ -27,7 +29,11 @@
import org.netbeans.modules.csl.spi.DefaultLanguageConfig;
import org.netbeans.modules.csl.spi.LanguageRegistration;
import org.netbeans.modules.parsing.spi.Parser;
+import org.openide.awt.*;
import org.openide.filesystems.MIMEResolver;
+import org.openide.util.Lookup;
+import org.openide.util.NbBundle;
+import org.openide.windows.TopComponent;
/**
* GSF Configuration for YAML
@@ -35,10 +41,68 @@
* @author Tor Norbye
*/
@MIMEResolver.ExtensionRegistration(displayName = "#YAMLResolver",
-extension = {"yml", "yaml"},
-mimeType = "text/x-yaml",
-position = 280)
-@LanguageRegistration(mimeType = "text/x-yaml") //NOI18N
+ extension = {"yml", "yaml"},
+ mimeType = "text/x-yaml",
+ position = 280
+)
+@ActionReferences({
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "System", id = "org.openide.actions.OpenAction"),
+ position = 100,
+ separatorAfter = 200
+ ),
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "Edit", id = "org.openide.actions.CutAction"),
+ position = 300
+ ),
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "Edit", id = "org.openide.actions.CopyAction"),
+ position = 400
+ ),
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "Edit", id = "org.openide.actions.PasteAction"),
+ position = 500,
+ separatorAfter = 600
+ ),
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "Edit", id = "org.openide.actions.DeleteAction"),
+ position = 700
+ ),
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "System", id = "org.openide.actions.RenameAction"),
+ position = 800,
+ separatorAfter = 900
+ ),
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "System", id = "org.openide.actions.SaveAsTemplateAction"),
+ position = 1000,
+ separatorAfter = 1100
+ ),
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "System", id = "org.openide.actions.FileSystemAction"),
+ position = 1200,
+ separatorAfter = 1300
+ ),
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "System", id = "org.openide.actions.ToolsAction"),
+ position = 1400
+ ),
+ @ActionReference(
+ path = "Loaders/text/x-yaml/Actions",
+ id = @ActionID(category = "System", id = "org.openide.actions.PropertiesAction"),
+ position = 1500
+ )
+})
+@LanguageRegistration(mimeType = "text/x-yaml", useMultiview = true) //NOI18N
public class YamlLanguage extends DefaultLanguageConfig {
@Override
@@ -90,4 +154,17 @@
public InstantRenamer getInstantRenamer() {
return null;
}
+
+ @NbBundle.Messages("Source=&Source")
+ @MultiViewElement.Registration(
+ displayName="#Source",
+ iconBase="org/netbeans/modules/languages/yaml/yaml_files_16.png",
+ persistenceType=TopComponent.PERSISTENCE_ONLY_OPENED,
+ mimeType=YamlTokenId.YAML_MIME_TYPE,
+ preferredID="yaml.source",
+ position=100
+ )
+ public static MultiViewEditorElement createMultiViewEditorElement(Lookup context) {
+ return new MultiViewEditorElement(context);
+ }
}
diff --git a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlTokenId.java b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlTokenId.java
index 32f9811..f0fd5f6 100644
--- a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlTokenId.java
+++ b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/YamlTokenId.java
@@ -22,6 +22,7 @@
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
+import org.netbeans.api.editor.mimelookup.MimeRegistration;
import org.netbeans.api.lexer.InputAttributes;
import org.netbeans.api.lexer.Language;
@@ -139,6 +140,7 @@
}
}.language();
+ @MimeRegistration(mimeType = YAML_MIME_TYPE, service = Language.class)
public static Language<YamlTokenId> language() {
return language;
}
diff --git a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/layer.xml b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/layer.xml
index ac3101a..30d90dc 100644
--- a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/layer.xml
+++ b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/layer.xml
@@ -26,19 +26,6 @@
<folder name="x-yaml">
<attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.languages.yaml.Bundle"/>
- <file name="language.instance">
- <attr name="instanceCreate" methodvalue="org.netbeans.modules.languages.yaml.YamlTokenId.language"/>
- <attr name="instanceOf" stringvalue="org.netbeans.api.lexer.Language"/>
- </file>
-
- <file name="org-netbeans-modules-languages-yaml-ruby-RubyEmbeddingProvider$Factory.instance">
- <attr name="instanceOf" stringvalue="org.netbeans.modules.parsing.spi.TaskFactory"/>
- </file>
-
- <file name="org-netbeans-modules-languages-yaml-EmbeddedSectionsHighlighting$Factory.instance">
- <attr name="instanceOf" stringvalue="org.netbeans.spi.editor.highlighting.HighlightsLayerFactory"/>
- </file>
-
<folder name="FontsColors">
<folder name="NetBeans">
<folder name="Defaults">
@@ -75,7 +62,7 @@
<file name="TabsAndIndents.instance">
<attr name="instanceOf" stringvalue="org.netbeans.modules.options.editor.spi.PreferencesCustomizer$Factory"/>
<attr name="instanceCreate" methodvalue="org.netbeans.modules.options.editor.spi.CustomizerFactories.createDefaultTabsAndIndentsCustomizerFactory"/>
- <attr name="previewTextFile" stringvalue="org/netbeans/modules/languages/yaml/YamlExample.html"/>
+ <attr name="previewTextFile" stringvalue="org/netbeans/modules/languages/yaml/YamlExample.yaml"/>
<attr name="position" intvalue="100"/>
</file>
</folder>
@@ -100,83 +87,6 @@
<folder name="x-yaml">
<attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/languages/yaml/yaml_files_16.png"/>
<attr name="iconBase" stringvalue="org/netbeans/modules/languages/yaml/yaml_files_16.png"/>
- <folder name="Actions">
- <file name="CopyAction.shadow">
- <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-CopyAction.instance"/>
- <attr name="position" intvalue="400"/>
- </file>
- <file name="CutAction.shadow">
- <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-CutAction.instance"/>
- <attr name="position" intvalue="300"/>
- </file>
- <file name="DeleteAction.shadow">
- <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-DeleteAction.instance"/>
- <attr name="position" intvalue="800"/>
- </file>
- <file name="FileSystemAction.shadow">
- <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-FileSystemAction.instance"/>
- <attr name="position" intvalue="1300"/>
- </file>
- <file name="NewAction.shadow">
- <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-NewAction.instance"/>
- <attr name="position" intvalue="700"/>
- </file>
- <file name="OpenAction.shadow">
- <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-OpenAction.instance"/>
- <attr name="position" intvalue="100"/>
- </file>
- <file name="PasteAction.shadow">
- <attr name="originalFile" stringvalue="Actions/Edit/org-openide-actions-PasteAction.instance"/>
- <attr name="position" intvalue="500"/>
- </file>
- <file name="PropertiesAction.shadow">
- <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-PropertiesAction.instance"/>
- <attr name="position" intvalue="1600"/>
- </file>
- <file name="RenameAction.shadow">
- <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-RenameAction.instance"/>
- <attr name="position" intvalue="900"/>
- </file>
- <file name="SaveAsTemplateAction.shadow">
- <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-SaveAsTemplateAction.instance"/>
- <attr name="position" intvalue="1100"/>
- </file>
- <file name="Separator1.instance">
- <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
- <attr name="position" intvalue="200"/>
- </file>
- <file name="Separator2.instance">
- <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
- <attr name="position" intvalue="600"/>
- </file>
- <file name="Separator3.instance">
- <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
- <attr name="position" intvalue="1000"/>
- </file>
- <file name="Separator4.instance">
- <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
- <attr name="position" intvalue="1200"/>
- </file>
- <file name="Separator5.instance">
- <attr name="instanceClass" stringvalue="javax.swing.JSeparator"/>
- <attr name="position" intvalue="1400"/>
- </file>
-
-
- <file name="ToolsAction.shadow">
- <attr name="originalFile" stringvalue="Actions/System/org-openide-actions-ToolsAction.instance"/>
- <attr name="position" intvalue="1500"/>
- </file>
- </folder>
- <folder name="Factories">
- <file name="YamlDataLoader.instance">
- <attr name="SystemFileSystem.icon" urlvalue="nbresloc:/org/netbeans/modules/languages/yaml/yaml_files_16.png"/>
- <attr name="dataObjectClass" stringvalue="org.netbeans.modules.languages.yaml.YamlDataObject"/>
- <attr name="instanceCreate" methodvalue="org.openide.loaders.DataLoaderPool.factory"/>
- <attr name="mimeType" stringvalue="text/x-yaml"/>
- <attr name="position" intvalue="1083"/>
- </file>
- </folder>
</folder>
</folder>
</folder>
diff --git a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/ruby/RubyEmbeddingProvider.java b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/ruby/RubyEmbeddingProvider.java
index 44a6ee6..ac73ae9 100644
--- a/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/ruby/RubyEmbeddingProvider.java
+++ b/ide/languages.yaml/src/org/netbeans/modules/languages/yaml/ruby/RubyEmbeddingProvider.java
@@ -24,6 +24,7 @@
import java.util.List;
import java.util.logging.Logger;
import javax.swing.text.Document;
+import org.netbeans.api.editor.mimelookup.MimeRegistration;
import org.netbeans.api.lexer.Token;
import org.netbeans.api.lexer.TokenHierarchy;
import org.netbeans.api.lexer.TokenSequence;
@@ -200,6 +201,7 @@
// }
}
+ @MimeRegistration(mimeType = YamlTokenId.YAML_MIME_TYPE, service = TaskFactory.class)
public static final class Factory extends TaskFactory {
public Factory() {