<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

-->
<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.2//EN" "http://www.netbeans.org/dtds/filesystem-1_2.dtd">
<filesystem>
    <folder name="Editors">
        <folder name="text">
            <folder name="x-antlr3">
                <attr name="displayName" bundlevalue="org.netbeans.modules.languages.antlr.Bundle#Editors/text/x-antlr3"/>
                <folder name="FontsColors">
                    <folder name="FlatLafDark">
                        <folder name="Defaults">
                            <file name="FontAndColors.xml" url="FlatLafDark-FontAndColors.xml">
                                <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.languages.antlr.Bundle"/>
                            </file>
                        </folder>
                    </folder>
                    <folder name="NetBeans">
                        <folder name="Defaults">
                            <file name="FontAndColors.xml" url="FontAndColors.xml">
                                <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.languages.antlr.Bundle"/>
                            </file>
                        </folder>
                    </folder>
                </folder>
            </folder>
            <folder name="x-antlr4">
                <attr name="displayName" bundlevalue="org.netbeans.modules.languages.antlr.Bundle#Editors/text/x-antlr4"/>
                <folder name="FontsColors">
                    <folder name="FlatLafDark">
                        <folder name="Defaults">
                            <file name="FontAndColors.xml" url="FlatLafDark-FontAndColors.xml">
                                <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.languages.antlr.Bundle"/>
                            </file>
                        </folder>
                    </folder>
                    <folder name="NetBeans">
                        <folder name="Defaults">
                            <file name="FontAndColors.xml" url="FontAndColors.xml">
                                <attr name="SystemFileSystem.localizingBundle" stringvalue="org.netbeans.modules.languages.antlr.Bundle"/>
                            </file>
                        </folder>
                    </folder>
                </folder>
            </folder>
        </folder>
    </folder>
    <folder name="Loaders">
        <folder name="text">
            <folder name="x-antlr3">
                <attr name="iconBase" stringvalue="org/netbeans/modules/languages/antlr/resources/antlr.png"/>
            </folder>
            <folder name="x-antlr4">
                <attr name="iconBase" stringvalue="org/netbeans/modules/languages/antlr/resources/antlr.png"/>
            </folder>
        </folder>
    </folder>
    <folder name="OptionsDialog">
        <folder name="PreviewExamples">
            <folder name="text">
                <file name="x-antlr3" url="AntlrExample.g"/>
                <file name="x-antlr4" url="AntlrExample.g4"/>
            </folder>
        </folder>
        <folder name="Editor">
            <folder name="Formatting">
                <folder name="text">
                    <folder name="x-antlr3">
                        <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/antlr/AntlrExample.g"/>
                            <attr name="position" intvalue="100"/>
                        </file>
                    </folder>
                    <folder name="x-antlr4">
                        <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/antlr/AntlrExample.g4"/>
                            <attr name="position" intvalue="100"/>
                        </file>
                    </folder>
                </folder>
            </folder>
        </folder>
    </folder>
</filesystem>
