Saterus
Saterus

Reputation: 549

How to Change Netbeans Fonts and Colors Preview Document?

Within the Netbeans 6.5's Tools -> Options -> Fonts & Colors -> Syntax dialog, you have the ability to change the look and feel of the Netbeans text editor. When you select a language, you are presented with a preview of your font/color scheme. However, when I preview Java, there are far more options for syntax changes than are being displayed in that preview window. If I were able to view a more robust piece of code, I'd be able to see the immediate effect of more of the options.

How can I supply a preview document to view my font/color changes?

UPDATE:

After looking into this some more, I've been able to narrow down the problem a bit. From what I can tell, everything in Netbeans is considered a plugin. The GUI editor is a plugin, and even the text editor is a plugin. This means that what ever piece of Netbeans that actually analyzes Java code and does syntax highlights is also a plugin (since Java is just one of many languages Netbeans highlights, it makes sense this is a plugin).

I think fromvega is on the right track with his suggestion. The tutorial for creating a manifest file editing plugin pointed me in the right direction. The tutorial eludes to a file used as a sample document used for font/color previews. It tells you how to create one inside this new plugin project. (Located in "Registering the Options in the NetBeans System Filesystem", part 4. About 4/5 of the way down the page.)

My next line of thought was to look for the Java syntax editing mode plugin and find this file and update it with a richer example file. I looked in the installation directory and came up empty, but I found what looks like the appropriate files within my user settings directory. There is a config directory with a lot of subfolders within my user directory (Windows: C:\Documents and Settings\saterus.netbeans\config).

I've been poking around inside this directory a bit, but have only found the xml files the manifest tutorial talks about. I have been unable to find the extensionless sample file for the Java plugin that I believe should be there.

Since I've hit a brick wall for the moment, I thought I'd toss it back to the SO community and see if you guys might make the last leap and find the solution.

Upvotes: 5

Views: 15551

Answers (3)

Roja Buck
Roja Buck

Reputation: 2354

Just for anyone who wants to alter this themselves it is possible on a unix machine to use grep to locate the file i.e.

grep -lr "some part of the current sample code" /path/to/netbeans

I used this method to locate the ruby example filename and from that identified that it is kept in org-netbeans-modules-ruby.jar as a file called RubyExample. By simply altering that file I was able to construct a better sample file for my own use.

Hope this helps someone!

Upvotes: 4

Tor Norbye
Tor Norbye

Reputation: 9150

The document which is displayed (for each mime type) is specified in a particular folder in the "system file system" (which is a NetBeans concept which is a virtual file system composed from contributions from individual modules; this is how functionality is dynamically registered in NetBeans).

Modules typically specify their system file system contributions in a file named "layer.xml" in the plugin. The create plugin templates typically offer to create this for you.

For example, here's how the Python example is registered:

<filesystem>
    ...
    <folder name="OptionsDialog">
        <folder name="PreviewExamples">
            <folder name="text">
                <file name="x-python" url="PythonExample.py"/>
            </folder>
        </folder>
        ...

Here, PythonExample.py is a sample file in the same directory as the layer file.

Therefore, what you need to do is create a plugin which overrides the existing registration(s) for the mime type(s) you care about and provide alternate sample documents. You may need to hide the existing registration first (see the _hidden part from http://doc.javanb.com/netbeans-api-javadoc-5-0-0/org-openide-filesystems/org/openide/filesystems/MultiFileSystem.html ).

Hopefully this guides you in the right direction.

However, in thinking about it, we probably ought to make the preview area editable - so people can cut & paste whatever codefragment they care about right in there. This wouldn't be persistent, so whenever you change languages you get the original samples back - but it provides a quick way to see your own code. This shouldn't be just for the Fonts & Colors customization, but for the Formatting preview panels as well.

I've filed an issue against NetBeans for this: http://www.netbeans.org/issues/show_bug.cgi?id=155964

-- Tor

Upvotes: 2

lbrandao
lbrandao

Reputation: 4373

I think you can only accomplish that with a new plugin, since you need somekind of parsing to define what is what.

Give a look a these tutorials, I haven't read them in details but they seem to show you how to do what you want:

http://platform.netbeans.org/tutorials/nbm-mfsyntax.html http://www.antonioshome.net/kitchen/netbeans/nbms-coloring.php

Upvotes: 0

Related Questions