Add extra colors to syntax highlighting?

Is there a file or some code I could make in order to add an extra color or two for syntax highlighting? Like having a certain color for function names and a different one for numbers etc.?

Hi,
There is an application Preferences for ActionScript called Syntax colors where you can specify a code coloring for Keywords, comments,identifiers & strings. You can access this on Windows by Edit>Preferences>ActionScript & on Mac by Flash>Preferences>ActionScript. Let me know if this helps you.
Thanks!

Similar Messages

  • Why can't the adjustment brush add color to white/highlights?

    I recently tried to use the adjustment brush to add som color to white/highlights, without success . I have learned that the color chosen for the adjustment brush will mix with the underlaying colors. The surrounding areas were colored as expected, however apperently no effect on the white/blown highlights. Am I doing anything wrong?
    Christopher

    I did this in LR. There's no detail at all in the window with or without Recovery set to 100.Here Recovery is set to 0.

  • How to enable syntax highlighting for jspf files on Dreamweaver CS5.5 on Mac

    I ran into an issue where I couldn't get the color coding (color coding style) for java server pages fragments (.jspf) files to show syntax highliting.
    I followed the adobe instructions on Changing and adding file extensions recognized by Dreamweaver without any luck.
    Here is the solution that worked for me:
    On a Mac:
    1. Edit the /Users/YOUR USER/Library/Application Support/Adobe/Dreamweaver CS5.5/en_US/Configuration/DocumentTypes/MMDocumetTypes.xml
    Note: the Adobe instructions tell you to edit /Applications/Adobe Dreamweaver CS5.5/Configuration/DocumentTypes/MMDocumetTypes.xml (Editing this file didn't do anything for me, so you need to change the file above instead)
    Find,
    <documenttype id="JSP" servermodel="JSP" internaltype="Dynamic" winfileextension="jsp,jst" macfileextension="jsp,jst" file="Default.jsp" writebyteordermark="false" mimetype="text/html">
    Replace with,
    <documenttype id="JSP" servermodel="JSP" internaltype="Dynamic" winfileextension="jsp,jst,jspf" macfileextension="jsp,jst,jspf" file="Default.jsp" writebyteordermark="false" mimetype="text/html">
    2. Edit the /Users/YOUR USER/Library/Application Support/Adobe/Dreamweaver CS5.5/en_US/Configuration/Extensions.txt
    In the All: section on top add the jspf extention right after jsp in my example it looked like this
    HTM,HTML,SHTM,SHTML,HTA,HTC,XHTML,STM,SSI,JS,JSON,AS,ASC,ASR,XML,XSL,XSD,DTD,XSLT,RSS,RDF, LBI,DWT,ASP,ASA,ASPX,ASCX,ASMX,CONFIG,CS,CSS,CFM,CFML,CFC,TLD,TXT,PHP,PHP3,PHP4,PHP5,PHP-D IST,PHTML,JSP,WML,TPL,LASSO,JSF,VB,VBS,VTM,VTML,INC,SQL,JAVA,EDML,MASTER,INFO,INSTALL,THEME,CONFIG,MODU LE,PROFILE,ENGINE,SVG:All
    and I added the jspf and it looks like this now,
    HTM,HTML,SHTM,SHTML,HTA,HTC,XHTML,STM,SSI,JS,JSON,AS,ASC,ASR,XML,XSL,XSD,DTD,XSLT,RSS,RDF, LBI,DWT,ASP,ASA,ASPX,ASCX,ASMX,CONFIG,CS,CSS,CFM,CFML,CFC,TLD,TXT,PHP,PHP3,PHP4,PHP5,PHP-D IST,PHTML,JSP,JSPF,WML,TPL,LASSO,JSF,VB,VBS,VTM,VTML,INC,SQL,JAVA,EDML,MASTER,INFO,INSTALL,THEME,CONFIG,MODU LE,PROFILE,ENGINE,SVG:All
    That's it, Quit Dreamweaver and open it up again. Open the .jspf file and see the color coding (syntax highlighting)
    Hope this helps you and seves you time figuring it out. If this helped, do a good thing, next time you figure something out, tell others about it to save their time too, like I did. Enjoy.

    TheGrandNabib wrote:
    I don't seem to have a user Library folder, my only Library folder is on the same level as my Users folder.
    From Locating your personal configuration folder in the Dreamweaver FAQ:
    In Mac OS X (Lion and Mountain Lion), open Finder and press Shift-Cmd-Go. Type ~/Library/Application Support in the dialog box, and click Go. You should then be able to find the configuration folder.

  • Nano syntax highlighting: catch-all syntax for configuration files

    After years of using nano, I only recently learned that it supports syntax coloring... (Why would they turn that off by default? ) Well, I thought I'll make up for it by making extra good use of it from now on...
    Unfortunately it didn't ship a highlighting syntax for the the kind of files that I use nano the most for: system configuration files.
    So I wrote my own, and after tweaking a bit here and there whenever I encountered a config file for which the highlighting wasn't satisfactory at first, I think the result is now good enough (screenshots below) that it's worth sharing with my fellow Arch users:
    Code & Instructions:
    Here is the syntax definition:
    # config file highlighting
    syntax "conf" "(\.(conf|config|cfg|cnf|rc|lst|list|defs|ini|desktop|mime|types|preset|cache|seat|service|htaccess)$|(^|/)(\w*crontab|mirrorlist|group|hosts|passwd|rpc|netconfig|shadow|fstab|inittab|inputrc|protocols|sudoers)$|conf.d/|.config/)"
    # default text
    color magenta "^.*$"
    # special values
    icolor brightblue "(^|\s|=)(default|true|false|on|off|yes|no)(\s|$)"
    # keys
    icolor cyan "^\s*(set\s+)?[A-Z0-9_\/\.\%\@+-]+\s*([:]|\>)"
    # commands
    color blue "^\s*set\s+\<"
    # punctuation
    color blue "[.]"
    # numbers
    color red "(^|\s|[[/:|<>(){}=,]|\])[-+]?[0-9](\.?[0-9])*%?($|\>)"
    # keys
    icolor cyan "^\s*(\$if )?([A-Z0-9_\/\.\%\@+-]|\s)+="
    # punctuation
    color blue "/"
    color brightwhite "(\]|[()<>[{},;:=])"
    color brightwhite "(^|\[|\{|\:)\s*-(\s|$)"
    # section headings
    icolor brightyellow "^\s*(\[([A-Z0-9_\.-]|\s)+\])+\s*$"
    color brightcyan "^\s*((Sub)?Section\s*(=|\>)|End(Sub)?Section\s*$)"
    color brightcyan "^\s*\$(end)?if(\s|$)"
    # URLs
    icolor green "\b(([A-Z]+://|www[.])[A-Z0-9/:#?&$=_\.\-]+)(\b|$| )"
    # XML-like tags
    icolor brightcyan "</?\w+((\s*\w+\s*=)?\s*("[^"]*"|'[^']*'|!?[A-Z0-9_:/]))*(\s*/)?>"
    # strings
    color yellow "\"(\\.|[^"])*\"" "'(\\.|[^'])*'"
    # comments
    color white "#.*$"
    color blue "^\s*##.*$"
    color white "^;.*$"
    color white start="<!--" end="-->"
    To install, save the above above code snippet as a file called conf.nanorc in the folder /usr/share/nano/ (or /usr/local/share/nano/ or similar if you feel strongly about the /usr <--> /usr/local separation), and then add the following to the end of the file /etc/nanorc:
    ## Configuration files (catch-all syntax)
    include "/usr/share/nano/conf.nanorc"
    Hints:
    The colors I chose look good (imo) with the terminal background and color settings that I use, but might not look good, or even readable, with yours, so simply change the color names in the code snippet to whatever you prefer - valid color names are:
    If you use a console with white background, you'll have to change at least the white color I chose for comments and punctuation.
    The first code line in the snippet includes a regular expression that defines for which file names this syntax highlighting should be used. Whenever you encounter a config file that is not matched by this, but you would still like to open it with syntax highlighting, you can manually select this syntax with nano's -Y switch, like so:
    nano -Y conf myConfigFile
    Technical Note:
    It's implemented as a single catch-all syntax, since nano chooses which syntax to apply based on the filename, and in the case of config files usually not much can be learned about the content format from the file name extension (.conf can by anything from flat key/value tuples to XML, .ini can be the official INI format or something else, etc...).
    This means that some compromises have been made, so with this highlighting syntax probably no config file looks 100% as good as a highlighting syntax that would be specifically optimized for one kind of config format, but all in all the vast majority of config files should look pretty good.
    Screenshots:
    /etc/rc.conf,  /etc/hosts:
    /etc/pacman.conf,  /etc/group:
    xorg.conf,  some .desktop file:
    httpd.conf (Apache config),  php.ini:
    More screenshots:
    /etc/fonts/fonts.conf (uses XML)
    /etc/inittab
    /etc/fstab
    /etc/inputrc
    /etc/mime.types
    /etc/protocols
    /etc/xinetd.conf
    See Also:
    nano syntax highlighting: GNU makefiles
    Update [2012-01-28]: Made some more improvements to the syntax definition (see post)
    Last edited by sas (2012-02-01 15:26:43)

    doug piston wrote:I deal with alot of .mk files and would love to see it there.
    You mean GNU makefiles?
    I'm afraid they might be out of scope for this generic config-file syntax.
    Logically they're not system config files, and technically they're a pretty specialized and complex format (different "types" of rules, rules spanning multiple lines, rules containing arbitrary Bash code, etc.).
    This is how an .mk file currently looks with this highlighting syntax:
    $ nano -Y conf /usr/lib/httpd/build/rules.mk
    And apart from highlighting variables of the form $$abc or $(abc), I'm not sure how much can be improved here without breaking the highlighting for more conventional config files.
    It would probably be better to create a specialized highlighting syntax just for .mk files.
    EDIT: I sat down and did just that, here's the result: nano syntax highlighting: GNU makefiles, and here is how the above makefile snipped looks with it:
    Last edited by sas (2012-02-01 15:18:52)

  • Enable syntax highlighting with configuration file in emacs

    When editing configuration files such as .procmailrc, .fetchmailrc, Emacs won't automatically highlight syntax for me.
    I can enable syntax highlighting in Vim by appending "syntax on"  to the .vimrc.
    I tried adding "global-font-lock-mode t" in the .emacs file, but it didn't solve my problem.
    What is the solution?

    igndenok wrote:
    Some of my config file have this (using conf-unix-mode)
    # this is .somerc
    # -*- conf-unix -*-
    Or using this in your .emacs
    (add-to-list 'auto-mode-alist '("\\.*rc$" . conf-unix-mode))
    I followed your advice, and it does have some syntax highlighting, but less than Vim does.
    For example, Vim will highlight all the names of colors in the .muttrc file, but Emacs doesn't.
    I guess Emacs is not as strong as Vim when it comes to editing configuration files.
    Last edited by yu3k (2011-09-14 10:06:47)

  • Syntax Highlight in a JTextPane

    How can I create syntax highlight in a JTextPane?

    import javax.swing.*;
    import javax.swing.text.*;
    import java.awt.Color;
    public class MultiColouredText extends JFrame {
       public MultiColouredText() {
          StyledDocument doc = new DefaultStyledDocument();
          JTextPane pane = new JTextPane(doc);
          pane.setEditable(false);
          pane.setFont(new java.awt.Font("Verdana", 0 , 16));
          MutableAttributeSet mas = new SimpleAttributeSet();
             try {
                StyleConstants.setForeground(mas, Color.yellow);
                StyleConstants.setBackground(mas, Color.blue);
                doc.insertString(doc.getLength(), " Hello ", mas);
                StyleConstants.setForeground(mas, Color.red);
                StyleConstants.setBackground(mas, Color.lightGray);
                doc.insertString(doc.getLength(), " World ", mas);
             catch (Exception ignore) {}
          getContentPane().add(pane);
          setSize(150,56);
          setDefaultCloseOperation( EXIT_ON_CLOSE );
       public static void main(String[] args) {
          new MultiColouredText().show();
    }

  • Syntax Highlighting and Undo Problem

    Hello Guys. I am working ona very simple type of Java Code Editor with syntax highlighting feature. It works fine as far as the syntax highlighting, cut, copy, paste etc are concerned but when I added Undo, Redo feature, it was not working as Undo Redo should. The UndoManager first removes the text attributes and finally the main Undo job. For example if I paste word public , the UndoManager will first remove the attributes and after about third or fouth click on the Undo button removes the pasted word.
    Please Help.

    Here's the complete demo code.
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.text.*;
    import javax.swing.event.*;
    import javax.swing.text.rtf.*;
    import javax.swing.undo.*;
    class ColorTextInTextPane extends JFrame implements UndoableEditListener
         private Hashtable keywords,impclasses;
         JEditorPane edit;
         UndoManager undo;
         JButton undoIt, redoIt;
         JPanel southButtonPanel;
         MyDocument doc = new MyDocument();
         public ColorTextInTextPane()
              super("ColorTextInTextPane");
              this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              edit = new JEditorPane();
              edit.setEditorKit(new StyledEditorKit());
              edit.setEditable(true);
              doc.addUndoableEditListener(this);
              edit.setDocument(doc);
              JScrollPane scroll=new JScrollPane(edit);
              undo = new UndoManager();
              undoIt = new JButton("Undo");
              undoIt.addActionListener(new ActionListener()
                public void actionPerformed(ActionEvent ae)
                    undoAction(ae);
              redoIt = new JButton("Redo");
              redoIt.addActionListener(new ActionListener()
                public void actionPerformed(ActionEvent ae)
                    redoAction(ae);
              southButtonPanel = new JPanel();
              southButtonPanel.add(undoIt);
              southButtonPanel.add(redoIt);
              getContentPane().add(scroll);
              getContentPane().add(southButtonPanel, BorderLayout.SOUTH);
              setSize(300,300);
              setVisible(true);
              Object dummyObject = new Object();
              keywords = new Hashtable();
              keywords.put( "abstract", dummyObject );
              keywords.put( "boolean", dummyObject );
              keywords.put( "break", dummyObject );
              keywords.put( "byte", dummyObject );
              keywords.put( "byvalue", dummyObject );
              keywords.put( "case", dummyObject );
              keywords.put( "cast", dummyObject );
              keywords.put( "catch", dummyObject );
              keywords.put( "char", dummyObject );
              keywords.put( "class", dummyObject );
              keywords.put( "const", dummyObject );
              keywords.put( "continue", dummyObject );
              keywords.put( "default", dummyObject );
              keywords.put( "do", dummyObject );
              keywords.put( "double", dummyObject );
              keywords.put( "else", dummyObject );
              keywords.put( "extends", dummyObject );
              keywords.put( "false", dummyObject );
              keywords.put( "final", dummyObject );
              keywords.put( "finally", dummyObject );
              keywords.put( "float", dummyObject );
              keywords.put( "for", dummyObject );
              keywords.put( "future", dummyObject );
              keywords.put( "generic", dummyObject );
              keywords.put( "goto", dummyObject );
              keywords.put( "if", dummyObject );
              keywords.put( "implements", dummyObject );
              keywords.put( "import", dummyObject );
              keywords.put( "inner", dummyObject );
              keywords.put( "instanceof", dummyObject );
              keywords.put( "int", dummyObject );
              keywords.put( "interface", dummyObject );
              keywords.put( "long", dummyObject );
              keywords.put( "native", dummyObject );
              keywords.put( "new", dummyObject );
              keywords.put( "null", dummyObject );
              keywords.put( "operator", dummyObject );
              keywords.put( "outer", dummyObject );
              keywords.put( "package", dummyObject );
              keywords.put( "private", dummyObject );
              keywords.put( "protected", dummyObject );
              keywords.put( "public", dummyObject );
              keywords.put( "rest", dummyObject );
              keywords.put( "return", dummyObject );
              keywords.put( "short", dummyObject );
              keywords.put( "static", dummyObject );
              keywords.put( "super", dummyObject );
              keywords.put( "switch", dummyObject );
              keywords.put( "synchronized", dummyObject );
              keywords.put( "this", dummyObject );
              keywords.put( "throw", dummyObject );
              keywords.put( "throws", dummyObject );
              keywords.put( "transient", dummyObject );
              keywords.put( "true", dummyObject );
              keywords.put( "try", dummyObject );
              keywords.put( "var", dummyObject );
              keywords.put( "void", dummyObject );
              keywords.put( "volatile", dummyObject );
              keywords.put( "while", dummyObject );
              Object dummyObject1 = new Object();
              impclasses = new Hashtable();
              impclasses.put( "JFrame", dummyObject1);
              impclasses.put( "Applet", dummyObject1);
                    impclasses.put( "JApplet", dummyObject1);
                    impclasses.put( "JTextField", dummyObject1);
                    impclasses.put( "JLabel", dummyObject1);
                    impclasses.put( "JPanel", dummyObject1);
                    impclasses.put( "JButton", dummyObject1);
         public void undoableEditHappened(UndoableEditEvent ev) {
        undo.addEdit(ev.getEdit());
        updateMenu();
      void undoAction(ActionEvent e) {
        try {
          if (undo.canUndo())
            undo.undo();
          updateMenu();
        catch (CannotRedoException cre) {
      void redoAction(ActionEvent e)
        try {
          if (undo.canRedo())
            undo.redo();
          updateMenu();
        catch (CannotRedoException cre) {
      public void updateMenu()
        undoIt.setEnabled(undo.canUndo());
        redoIt.setEnabled(undo.canRedo());
         public static void main(String a[])
              new ColorTextInTextPane();
         class MyDocument extends DefaultStyledDocument
              DefaultStyledDocument doc;
              MutableAttributeSet normal;
              MutableAttributeSet keyword;
              MutableAttributeSet comment;
              MutableAttributeSet quote;
              MutableAttributeSet impclasses1;
              public MyDocument()
                   doc = this;
                   putProperty( DefaultEditorKit.EndOfLineStringProperty, "\n" );
                   normal = new SimpleAttributeSet();
                   StyleConstants.setForeground(normal, Color.black);
                   comment = new SimpleAttributeSet();
                   StyleConstants.setForeground(comment, Color.green);
                   StyleConstants.setItalic(comment, true);
                   keyword = new SimpleAttributeSet();
                   StyleConstants.setForeground(keyword, Color.blue);
                   StyleConstants.setBold(keyword, true);
                   quote = new SimpleAttributeSet();
                   StyleConstants.setForeground(quote, Color.red);
                   StyleConstants.setBold(quote, true);
                   impclasses1 = new SimpleAttributeSet();
                   StyleConstants.setForeground(impclasses1, Color.magenta);
                   StyleConstants.setBold(impclasses1, true);
              public void insertString(int offset, String str, AttributeSet a) throws BadLocationException
                   super.insertString(offset, str, a);
                   processChangedLines(offset, str.length());
              public void remove(int offset, int length) throws BadLocationException
                   super.remove(offset, length);
                   processChangedLines(offset, 0);
              public void processChangedLines(int offset, int length) throws BadLocationException
                   String content = doc.getText(0, doc.getLength());
                   Element root = doc.getDefaultRootElement();
                   int startLine = root.getElementIndex( offset );
                   int endLine = root.getElementIndex( offset + length );
                   for (int i = startLine; i <= endLine; i++)
                        int startOffset = root.getElement( i ).getStartOffset();
                        int endOffset = root.getElement( i ).getEndOffset();
                        applyHighlighting(content, startOffset, endOffset - 1);
              public void applyHighlighting(String content, int startOffset, int endOffset)
                   throws BadLocationException
                   int index;
                   int lineLength = endOffset - startOffset;
                   int contentLength = content.length();
                   if (endOffset >= contentLength)
                        endOffset = contentLength - 1;
                   //  set normal attributes for the line
                   doc.setCharacterAttributes(startOffset, lineLength, normal, true);
                   //  check for multi line comment
                   String multiLineStartDelimiter = "/*";
                   String multiLineEndDelimiter = "*/";
                   index = content.lastIndexOf( multiLineStartDelimiter, endOffset );
                   if (index > -1)
                        int index2 = content.indexOf( multiLineEndDelimiter, index );
                        if ( (index2 == -1) || (index2 > endOffset) )
                             doc.setCharacterAttributes(index, endOffset - index + 1, comment, false);
                             return;
                        else
                        if (index2 >= startOffset)
                             doc.setCharacterAttributes(index, index2 + 2 - index, comment, false);
                             return;
                   //  check for single line comment
                   String singleLineDelimiter = "//";
                   index = content.indexOf( singleLineDelimiter, startOffset );
                   if ( (index > -1) && (index < endOffset) )
                        doc.setCharacterAttributes(index, endOffset - index + 1, comment, false);
                        endOffset = index - 1;
                   //  check for tokens
                   checkForTokens(content, startOffset, endOffset);
              private void checkForTokens(String content, int startOffset, int endOffset)
                   while (startOffset <= endOffset)
                        //  find the start of a new token
                        while ( isDelimiter( content.substring(startOffset, startOffset + 1) ) )
                             if (startOffset < endOffset)
                                  startOffset++;
                             else
                                  return;
                        if ( isQuoteDelimiter( content.substring(startOffset, startOffset + 1) ) )
                             startOffset = getQuoteToken(content, startOffset, endOffset);
                        else
                             startOffset = getOtherToken(content, startOffset, endOffset);
              private boolean isDelimiter(String character)
                   String operands = ";:{}()[]+-/%<=>!&|^~*";
                 if (Character.isWhitespace( character.charAt(0) ) ||
                      operands.indexOf(character) != -1 )
                      return true;
                 else
                      return false;
              private boolean isQuoteDelimiter(String character)
                   String quoteDelimiters = "\"'";
                   if (quoteDelimiters.indexOf(character) == -1)
                      return false;
                 else
                      return true;
              private boolean isKeyword(String token)
                   Object o = keywords.get( token );
                   return o == null ? false : true;
              private boolean isimpclasses1(String token)
                   Object o = impclasses.get( token );
                   return o == null ? false : true;
              private int getQuoteToken(String content, int startOffset, int endOffset)
                   String quoteDelimiter = content.substring(startOffset, startOffset + 1);
                   String escapedDelimiter = "\\" + quoteDelimiter;
                   int index;
                   int endOfQuote = startOffset;
                   //  skip over the escaped quotes in this quote
                   index = content.indexOf(escapedDelimiter, endOfQuote + 1);
                   while ( (index > -1) && (index < endOffset) )
                        endOfQuote = index + 1;
                        index = content.indexOf(escapedDelimiter, endOfQuote);
                   // now find the matching delimiter
                   index = content.indexOf(quoteDelimiter, endOfQuote + 1);
                   if ( (index == -1) || (index > endOffset) )
                        endOfQuote = endOffset;
                   else
                        endOfQuote = index;
                   doc.setCharacterAttributes(startOffset, endOfQuote - startOffset + 1, quote, false);
                            //String token = content.substring(startOffset, endOfQuote + 1);
                            //System.out.println( "quote: " + token );
                   return endOfQuote + 1;
              private int getOtherToken(String content, int startOffset, int endOffset)
                 int endOfToken = startOffset + 1;
                   while ( endOfToken <= endOffset )
                        if ( isDelimiter( content.substring(endOfToken, endOfToken + 1) ) )
                             break;
                        endOfToken++;
                   String token = content.substring(startOffset, endOfToken);
                            //System.out.println( "found: " + token );
                   if ( isKeyword( token ) )
                        doc.setCharacterAttributes(startOffset, endOfToken - startOffset, keyword, false);
                   if(isimpclasses1 ( token) )
                        doc.setCharacterAttributes(startOffset, endOfToken - startOffset, impclasses1, false);
                   return endOfToken + 1;
    }

  • Different Styles in PlainView - Syntax Highlighting?

    Hi,
    I've managed to extend PlainView and looking at old JEdit code I have the syntax highlighting working for the most part. However, at certain times while typing the cursor starts to get way ahead of the text it's typing. And as I backspace on the line the cursor eventually gets closer to the character the closer it gets to the start of the line.
    I'm overridding the "drawUnselectedText()" method in PlainView to do the coloring.
    Here's the code, you can see the call to SyntaxUtilities.paintSyntaxLine() which is JEdit's class to do the drawing.
             * Renders the given range in the model as normal unselected text. This
             * is implemented to paint colors based upon the token-to-color
             * translations. To reduce the number of calls to the Graphics object,
             * text is batched up until a color change is detected or the entire
             * requested range has been reached.
             * @param g
             *            the graphics context
             * @param x
             *            the starting X coordinate
             * @param y
             *            the starting Y coordinate
             * @param p0
             *            the beginning position in the model
             * @param p1
             *            the ending position in the model
             * @returns the location of the end of the range
             * @exception BadLocationException
             *                if the range is invalid
            protected int drawUnselectedText(Graphics g, int x, int y, int p0, int p1) throws BadLocationException {
                System.out.println("p0: " + p0 + " p1: " + p1 + " x: " + x + " y: " + y);
                // Get the start of the element
                int lineIndex = doc.getDefaultRootElement().getElementIndex(p0);
                // Get the element for the line
                Element elem = doc.getDefaultRootElement().getElement(lineIndex);
                System.out.println("lineIndex: " + lineIndex + " elemStartIDX: " + elem.getStartOffset() + " elemEndIDX: " + elem.getEndOffset());
                // Get the line text
                doc.getText(p0, p1 - p0, currentLineText);
                // If highlighting, mark the tokens
                if (marker != null) {
                    Token t = marker.markTokens(currentLineText, lineIndex);
                    x = SyntaxUtilities.paintSyntaxLine(currentLineText, t, styles, this, g, x, y, p0, p1);
                    System.out.println("Painted line at: " + x);
                } else {
                    // No highlighting requested, draw normal text
                    Font defaultFont = g.getFont();
                    Color defaultColor = styles[0].getColor(); // Default color of text
                    g.setFont(defaultFont);
                    g.setColor(defaultColor);
                    x = Utilities.drawTabbedText(currentLineText, x, y, g, this, p0);
                // Set the last line processed
                lastLine  = lineIndex;
                return x;
    Here is the code from the paintSyntaxLine() method:
         * Paints the specified line onto the graphics context. Note that this
         * method munges the offset and count values of the segment.
         * @param line
         *            The line segment
         * @param tokens
         *            The token list for the line
         * @param styles
         *            The syntax style list
         * @param expander
         *            The tab expander used to determine tab stops. May be null
         * @param gfx
         *            The graphics context
         * @param x
         *            The x co-ordinate
         * @param y
         *            The y co-ordinate
         * @return The x co-ordinate, plus the width of the painted string
        public static int paintSyntaxLine(Segment line, Token tokens, SyntaxStyle[] styles, TabExpander expander, Graphics gfx, int x, int y, int p0, int p1) {
            Font defaultFont = gfx.getFont();
            Color defaultColor = Color.black;
            FontMetrics fm = gfx.getFontMetrics(defaultFont);
            int offset = 0;
            while (tokens != null && tokens.id != Token.END) {
                int length = tokens.length;
                if (tokens.id == Token.NULL) {
                    if (!defaultColor.equals(gfx.getColor()))
                        gfx.setColor(defaultColor);
                    if (!defaultFont.equals(gfx.getFont()))
                        gfx.setFont(defaultFont);
                } else {
                    styles[tokens.id].setGraphicsFlags(gfx, defaultFont);
    //                fm = gfx.getFontMetrics();//[tokens.id].getStyledFont(defaultFont);
    //                FontMetrics dfm = Toolkit.getDefaultToolkit().getFontMetrics(defaultFont);
    //                System.out.println("Font Info: CharWidth[" + fm.charWidth(line.array[p1])+"], Max Advance[" + fm.getMaxAdvance()+"]");
    //                System.out.println("Default Font Info: CharWidth[" + dfm.charWidth(line.array[p1])+"], DMax Advance[" + dfm.getMaxAdvance()+"]");
    ////                x = fm.charsWidth(line.array, p0, length);
                line.count = length;
                x = Utilities.drawTabbedText(line, x, y, gfx, expander, p0);
                line.offset += length;
                offset += length;
                tokens = tokens.next;
            return x;
    I'm not sure what the problem is..i thought it might be an issue with the View and drawing multiple font styles. Since plain view only deals with a single font color and size. I tried using LabelView but that seems to need a StyledDocument and I had problems when I tried to use DefaultStyledDocument for my syntaxdocument. I was getting strange offset issues when using the Segment class.
    Here's what I posted: http://forum.java.sun.com/thread.jspa?threadID=780801
    I am using PlainDocument because that seemed to be what everyone was using for a syntax editor..since the structure of the document in a Plain Document is less complex.
    I orginally started out using the setCharacterAttributes() method on the DefaultStyledDocument and letting the views draw the text. That all seemed to work except for the "segment offset" issue. And I wasn't sure where the best spot to get the document to redraw subsequent lines in the case of changing a multiline comment, etc.
    So, everything I read about others attempts for syntax highlighters seems to use either StyledEditorKit with a fixed language set with custom parsing and using the setCharacterAttributes method. Or they use the plaindocument approach with a custom view..(which no one seems to share the source) or the project just simply uses the JEditTextArea directly (which we can't do in our product).
    We don't need multiple fonts per-line.. The document will always use one font face (Arial, Helvetica, etc) but may use different styles per word (bold, italic, etc).
    I thought I'd need to use FontMetrics to get the size of the font and such. But there didn't seem to be a difference in measurements based on the style of the font. (i.,e A bold font has the same charWidth('m') size as a regular style.
    At least that's what my test program showed..
    The other thing I noticed is that when the document is successfully colored and I use the mouse to select a region of text, the style of the text reverts back to normal. I'm sure that's because I only override the drawUnselectedText() method.
    Any ideas? Is there anyone who has successfully done this?
    Thanks,
    - Tim

    I just tried using a proportional font in my editor, and now I'm seeing your runaway-caret problem. Specifically, the caret remains in sync with the text as long as no bold characters are encountered, but it gets noticeably farther out of whack with each bold character it passes. I suspect that, when you measured the charWidth, your FontMetrics object wasn't really based on a bold font, because bold versions of proportional fonts are larger. And of course, the model/view conversion methods assume that the same style of the same font is used throughout the document. I've never had to deal with that problem, since I've always used monospaced fonts by preference, and bold versions of monospaced fonts really are the same size as the non-bold versions. I suggest you do the same, because getting this to work with proportional fonts look like a major hassle.

  • Help required in syntax highlighting in xml using tool Syntax

    hi
    i am using Syntax tool for syntax highlighting of xml in JTextpane. I use complex html style and i want to change the colors of the displayed xml in the tool under complex html like the internet explorer displays in case of xml i want to make my xml like that..

    Hi,
    use it like this if Fname equals constnat[space] then pass the Constant[space] to Fname else value of Fname as under
    ................................Constant[]------>
    FNAME.............................................Then
    >Equals....................................IF -
    >FNAME
    Constant[].........................................ELSE
    .......................................FNAME---->   
    Constant[]    = Constant [ Space ]
    Sachin

  • XML Syntax highlighting (again :)

    Hi there,
    I know, that there have been quite a view posts about this topics, but as far as I see, there has been no solution to this.
    So I wanted to ask if someone has implemented a XML Syntax highlighting or knows where to get a tutorial from to accomplish so (inheriting from DefaultStyledDocument...?)
    Sincerely
    Charly

    Hi!
    I have the same need: an XML Syntax Highlighting (coloring).
    I don't need an XML editor, I have a JTextPane that shows XML code and I would like it to be done with a syntax coloring.
    If you have a solution I will really appreciate!
    Thanks
    Gio :-)

  • Pacman.conf file syntax highlighting for nano

    Hi, here is pacman.conf file syntax highlighting for nano. It may be useful for those who edit their pacman.conf regularly.
    Just put this lines in the end of your /etc/nanorc or ~/.nanorc file:
    # syntax highlithing in pacman.conf
    syntax "pacman.conf" "pacman\.conf$"
    color brightwhite start="\[" end="\]"
    color brightyellow ".*="
    color brightred "=.*"
    color white "="
    color brightblue "\[|\]"
    color brightcyan start="/|http|ftp" end=".*"
    color green "#.*"
    In this thread you can find rc.conf file syntax highlighting.

    thank you! i always accidentally open up nano, find out text is practically unreadable with its default colours, close it and then wait the horrific 4 seconds it takes for emacs to spring to life.

  • Rc.conf file syntax highlighting for nano

    Hey, here is rc.conf file syntax highlighting for nano. It may be useful for those who edit their rc.conf regularly.
    # syntax highlithing in rc.conf
    syntax "rc.conf" "rc\.conf$"
    color brightwhite ""(\\.|[^\"])*""
    color brightwhite "\((\\.|[^\"])*\)"
    color brightred "![^> ]+"
    color brightcyan "@[^> ]+"
    color brightyellow ".*="
    color white "="
    color brightblue ""|\(|\)"
    color green "#.*"
    Put this lines into /etc/nanorc or ~/.nanorc

    thank you! i always accidentally open up nano, find out text is practically unreadable with its default colours, close it and then wait the horrific 4 seconds it takes for emacs to spring to life.

  • Syntax highlighting using JTextPane

    Hello,
    Does somebody know how to achieve quick, efficient syntax highlighting using JTextPane. I have tried it out by actually removing and reinserting the colored text, but it is way too slow. It is worse if I do it in a thread. It will be a great help if somebody bails me out of this problem.
    S. Senthil kumar

    Let me see if I understand your problem...you are attempting to open a fairly large file and then highlight certain portions of the text. You're asking for help on how to efficiently do this and several people gave you links on how to highlight text which leads to your last question about the files taking too long to load. How big are these files you're talking about and how long does it take for them to load? What time is acceptable? Remember, all commercially available document display programs have a certain load time which grows larger as the document it is attempting to display grows in size.
    -Kevin

  • Syntax Highlighting for LESS CSS in Dreamweaver CS5.5

    This article describes how to add the .less extension to Dreamweaver so that it views it as CSS and thus performs proper syntax highlighting.
    I'm using Dreamweaver CS5.5 and following those steps still doesn't work for me. It works perfectly fine in CS5 and earlier versions but not CS5.5.
    Do you have any ideas? I'm modifying the following file as the above link suggests:
    C:\Program Files (x86)\Adobe\Adobe Dreamweaver CS5.5\configuration\DocumentTypes\MMDocumentTypes.xml

    Aegis Kleais wrote:
    Sorry, Al, but I couldn't disagree more.  Where I respect the fact that, as coders, we're rather ingrained with our workflow processes and, at times, hesitant to change, I've found LESS' benefits to be very worthwhile.
    No need to apologize. Preprocessing is a topic on which there are differing opinions. You have one. I have one. There are advocates:
    http://blog.urbaninsight.com/2012/04/12/ten-reasons-you-should-be-using-css-preprocessor
    There are those who are not sold:
    http://blog.millermedeiros.com/the-problem-with-css-pre-processors/
    http://www.skybondsor.com/blog/css-preprocessors
    There are those mostly sold:
    http://css-tricks.com/musings-on-preprocessing/
    There are even those who have been converted (but who might reverse at some later point):
    http://cognition.happycog.com/article/preprocess-this
    Heck, even I might be converted someday - or not
    Bottom line for me, right now? I know I can write CSS that is better than most, more efficient than most, and easier to follow than most, and a preprocessor would add unwanted complexity. But that's for me. For someone not able to be organized intutively, or for a large - but carefully coordinated - team, a preprocessor could be a positive.
    But not for me.
    There are evolving trends - popular aspects of the technology that may and should find themselves being adapted into CSS. But I've been around this business as long as CSS has. I've seen buzzwords and trends and I've historically been spot-on in predicting the one that will stick. I think preprocessing will stick - but only insofar as it will be a catalyst for features in future versions of CSS. As a separate technology it makes no sense - to me

  • How do I enable syntax highlighting for jspf files on Dreamweaver CS6 on Windows?

    I followed the instructions (which I modified for CS6) in this posting: http://blog.metameister.com/blog/2011/04/08/open-new-file-types-and-add-syntax-highlightin g-in-dreamweaver-cs5-on-window…
    but it did not work for CS6.
    How do I enable syntax highlighting for jspf files on Dreamweaver CS6 on Windows 7?
    cheers
    Marvin in Edmonton

    Ok, I figured it out after hunting for a few hours.
    Step 1. Add the File Type
    In Dreamweaver’s toolbar:
    Select Edit > Preferences; 
    under File Types / Editors, add .jspf to the line “Open in Code View:”.
    Step 2. Extensions.txt
    Add file type .jspf to the Extensions.txt files. There are two of these files:
    C:\Users\[username]\AppData\Roaming\Adobe\Dreamweaver CS6\en_US\Configuration
    C:\Program Files (x86)\Adobe\Adobe Dreamweaver CS6\configuration
    Step 3. MMDocumentTypes.xml
    Add jspf to the MMDocumentTypes.xml files. Open this file in Notepad or Text Editor. Do not modify the Dreamweaver configuration files within Dreamweaver.
    There are three MMDocumentTypes.xml files to be modified: 
    C:\Program Files (x86)\Adobe\Adobe Dreamweaver CS6\configuration\DocumentTypes
    C:\Users\mhaagsma\AppData\Roaming\Adobe\Dreamweaver CS6\en_US\Configuration
    C:\Users\mhaagsma\AppData\Roaming\Adobe\Dreamweaver CS6\en_US\Configuration\DocumentTypes\
    Step 4. Restart Dreamweaver
    Hopefully the file type will now be recognized and appear with syntax highlighting.

Maybe you are looking for

  • Error -: AIP-16012: Parameter: trading Partner is unique for object Trading

    Hi Gurus, When I go to rename the b2b server under trading partners, I receive the following error: An error occurred when updating the trading partner. 1. Error -: AIP-16012: Parameter: trading Partner is unique for object Trading Partner Identifica

  • Passing Value to Java Script Code in a BSP

    Hi Guys, In order to use BSP Extension in my BS i need to specify the "ID" for the field / Text area / Table i want to work with. Now these elements (Field / Text Area / Table) are created by SAP CRM automatically and i am not sure how i can get the

  • No Service on Lumia 920

    Hi i'm new here. I swapped my new Motorla for a friends Lumia 920 and managed to get it unlocked successfully. However when I put in my O2 simcard it shows O2 in the phone tile briefly but then shows "no Service". It shows 5 bars on the signal streng

  • How can I copy and forward a string of text messages from a Iphone 5s to an email address

    How can I copy and forward a string of text messages from an IPhone 5S to an Email address?

  • Don't see chapter markers in DVD SP

    Hi everybody. I don't see chapter markers I expected to find in my DVD SP project. This was my first time placing chapter markers in FC and it was my understanding they would appear in the DVD SP timeline. Here's my workflow: I exported a sequence fr