alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

jEdit example source code file (objective-c.xml)

This example jEdit source code file (objective-c.xml) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - jEdit tags/keywords

delegate, delegate, import, keyword1, keyword1, literal2, markup, markup, name, property, property, rules, type, value

The jEdit objective-c.xml source code

<?xml version="1.0"?>

<!DOCTYPE MODE SYSTEM "xmode.dtd">

<!-- Extension of c.xml to handle Objective-C keywords. -->
<MODE>
    <PROPS>
        <PROPERTY NAME="commentStart" VALUE="/*" />
        <PROPERTY NAME="commentEnd" VALUE="*/" />
        <PROPERTY NAME="lineComment" VALUE="//" />
        <PROPERTY NAME="wordBreakChars" VALUE=",+-=<>/?^&*" />

	<!-- Auto indent -->
	<PROPERTY NAME="indentOpenBrackets" VALUE="{" />
	<PROPERTY NAME="indentCloseBrackets" VALUE="}" />
	<PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
	<PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
	<PROPERTY NAME="indentNextLine"
		VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
	<PROPERTY NAME="unindentThisLine"
		VALUE="^.*(default:\s*|case.*:.*)$" />
	<PROPERTY NAME="electricKeys" VALUE=":" />
    </PROPS>

    <RULES
        IGNORE_CASE="FALSE"
        HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
        <EOL_SPAN TYPE="KEYWORD2" AT_WHITESPACE_END="TRUE" DELEGATE="CPP">#

        <IMPORT DELEGATE="c::LEX"/>
        <IMPORT DELEGATE="c::CORE"/>
		<IMPORT DELEGATE="CORE"/>
    </RULES>

    <!-- Core language -->
    <RULES SET="CORE"
        IGNORE_CASE="FALSE"
        HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
        <KEYWORDS>
            <!-- Types (Objective C) -->
            <KEYWORD3>id
            <KEYWORD3>Class
            <KEYWORD3>SEL
            <KEYWORD3>IMP
            <KEYWORD3>BOOL

            <!-- Keywords (Objective C) -->
            <KEYWORD1>oneway
            <KEYWORD1>in
            <KEYWORD1>out
            <KEYWORD1>inout
            <KEYWORD1>bycopy
            <KEYWORD1>byref
            <KEYWORD1>self
            <KEYWORD1>super

            <!-- Preprocessor Directives (Objective C)-->
            <KEYWORD1>@interface
            <KEYWORD1>@implementation
            <KEYWORD1>@protocol
            <KEYWORD1>@end
            <KEYWORD1>@private
            <KEYWORD1>@protected
            <KEYWORD1>@public
            <KEYWORD1>@class
            <KEYWORD1>@selector
            <KEYWORD1>@endcode
            <KEYWORD1>@defs

            <LITERAL2>TRUE
            <LITERAL2>FALSE
            <LITERAL2>YES
            <LITERAL2>NO
            <LITERAL2>NULL
            <LITERAL2>nil
            <LITERAL2>Nil
        </KEYWORDS>
    </RULES>

    <!-- Preprocessor specific rules -->
    <RULES SET="CPP"
        IGNORE_CASE="FALSE"
        HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">

        <EOL_SPAN_REGEXP HASH_CHAR="include" TYPE="MARKUP" DELEGATE="c::INCLUDE">include\b
        <EOL_SPAN_REGEXP HASH_CHAR="import" TYPE="MARKUP" DELEGATE="c::INCLUDE">import\b
        <EOL_SPAN_REGEXP HASH_CHAR="define" TYPE="MARKUP" DELEGATE="DEFINE">define\b
        <EOL_SPAN_REGEXP HASH_CHAR="endif" TYPE="MARKUP" DELEGATE="c::LEX">endif\b
        <EOL_SPAN_REGEXP HASH_CHAR="elif" TYPE="MARKUP" DELEGATE="c::CONDITION">elif\b
        <EOL_SPAN_REGEXP HASH_CHAR="if" TYPE="MARKUP" DELEGATE="c::CONDITION">if\b

        <IMPORT DELEGATE="LEX"/>

        <!-- Directives -->
        <KEYWORDS>
            <MARKUP>ifdef
            <MARKUP>ifndef
            <MARKUP>else
            <MARKUP>error
            <MARKUP>line
            <MARKUP>pragma
            <MARKUP>undef
            <MARKUP>warning
        </KEYWORDS>
    </RULES>

    <!-- After #define directive -->
    <!-- Almost same as the normal code,
        except two additional operators # and ##. -->
    <RULES SET="DEFINE"
        IGNORE_CASE="FALSE"
        HIGHLIGHT_DIGITS="TRUE" DIGIT_RE="[0-9][0-9a-zA-Z]*">
        <SEQ TYPE="OPERATOR">#
        <IMPORT DELEGATE="c::LEX"/>
        <IMPORT DELEGATE="c::CORE"/>
        <IMPORT DELEGATE="CORE"/>
    </RULES>

</MODE>

Other jEdit examples (source code examples)

Here is a short list of links related to this jEdit objective-c.xml source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.