Syntax Highlighting for KDE4, Gnome and Windows

Particularly useful chunks of hoc and/or NMODL code. May be pedestrian or stunningly brilliant, may make you gasp or bring tears to your eyes, but always makes you think "I wish I had written that; I'm sure going to steal it."

Syntax Highlighting for KDE4, Gnome and Windows

Postby Keivan » Tue Sep 01, 2009 1:42 am

I have modified the original C++ xml code used in KDE's kate text editor to highlight most common parts of the hoc code. to use this file you should

1) Create the syntax folder in "~/.kde/share/apps/katepart/" folder if it doesn't already exist.
2) Copy the provided "neuron.xml" file to this new folder.
3) Close all open documents in kwrite/kate/kdevelop. Restart them, open your hoc files again in kate, and if your code does not automatically recognized go to kate > tools > highlighting > Scripts > and select neuron and marvel at how much nicer they look. :)

create the "neuron.xml" with the following content:
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="neuron" section="Scripts"
          version=".1" kateversion="2.4"
          indenter="cstyle"
          extensions="*.hoc;*.nrn;*.ses;"
          mimetype="text/x-csrc;text/x-c++src;text/x-chdr"
          priority="5">
<!--
##########################################################################
## Written by Keivan Moradi (k.moradi@gmail.com)
##
## NOTE: Please try to improve it
##########################################################################
## <item>  </item>
-->
  <highlighting>
    <list name="keywords">
      <item> access </item>
      <item> begintemplate </item>
      <item> break </item>
      <item> connect </item>
      <item> continue </item>
      <item> create </item>
      <item> default </item>
      <item> delete </item>
      <item> depvar </item>
      <item> do </item>
      <item> else </item>
      <item> endtemplate </item>
      <item> eqn </item>
      <item> external </item>
      <item> for </item>
      <item> forall </item>
      <item> forsec </item>
      <item> func </item>
      <item> if </item>
      <item> ifsec </item>
      <item> init </item>
      <item> insert </item>
      <item> iterator </item>
      <item> local </item>
      <item> localobj </item>
      <item> new </item>
      <item> nseg </item>
      <item> obfunc </item>
      <item> objectvar </item>
      <item> objref </item>
      <item> print </item>
      <item> proc </item>
      <item> public </item>
      <item> read </item>
      <item> return </item>
      <item> setpointer </item>
      <item> stop </item>
      <item> strdef </item>
      <item> this </item>
      <item> uninsert </item>
      <item> unref </item>
      <item> while </item>
      <item> xbutton </item>
      <item> xlabel </item>
      <item> xpanel </item>
      <item> xvalue </item>
    </list>
    <list name="types">
      <item> auto </item>
      <item> char </item>
      <item> const </item>
      <item> double </item>
      <item> float </item>
      <item> int </item>
      <item> long </item>
      <item> register </item>
      <item> restrict </item>
      <item> short </item>
      <item> signed </item>
      <item> static </item>
      <item> unsigned </item>
      <item> void </item>
      <item> volatile </item>
      <item> int8_t </item>
      <item> int16_t </item>
      <item> int32_t </item>
      <item> int64_t </item>
      <item> uint8_t </item>
      <item> uint16_t </item>
      <item> uint32_t </item>
      <item> uint64_t </item>
      <item> wchar_t </item>
      <item> _Imaginary </item>
      <item> _Complex </item>
      <item> _Bool </item>
    </list>
    <contexts>
      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
        <DetectSpaces />
   <RegExpr attribute="Preprocessor" context="Outscoped" String="#\s*if\s+0" beginRegion="PP" firstNonSpace="true" />
        <DetectChar context="AfterHash" char="#" firstNonSpace="true" lookAhead="true" />
        <StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
        <StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
        <keyword attribute="Keyword" context="#stay" String="keywords"/>
        <keyword attribute="Data Type" context="#stay" String="types"/>
        <DetectIdentifier />
        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
        <Float attribute="Float" context="#stay">
          <AnyChar String="fF" attribute="Float" context="#stay"/>
        </Float>
        <HlCOct attribute="Octal" context="#stay"/>
        <HlCHex attribute="Hex" context="#stay"/>
        <Int attribute="Decimal" context="#stay" >
          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="TRUE"/>
          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="TRUE"/>
          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="TRUE"/>
          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="TRUE"/>
          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="TRUE"/>
          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="TRUE"/>
          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="TRUE"/>
          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="TRUE"/>
        </Int>
        <HlCChar attribute="Char" context="#stay"/>
        <DetectChar attribute="String" context="String" char="&quot;"/>
        <IncludeRules context="##Doxygen" />
        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
      </context>

      <context attribute="String" lineEndContext="#pop" name="String">
        <LineContinue attribute="String" context="#stay"/>
        <HlCStringChar attribute="String Char" context="#stay"/>
        <DetectChar attribute="String" context="#pop" char="&quot;"/>
      </context>

      <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
      </context>

      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
        <LineContinue attribute="Comment" context="#stay"/>
        <IncludeRules context="##Alerts" />
      </context>

      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
        <IncludeRules context="##Alerts" />
      </context>

      <context attribute="Error" lineEndContext="#pop" name="AfterHash">
        <!-- define, elif, else, endif, error, if, ifdef, ifndef, include, include_next, line, pragma, undef, warning -->
        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
        <RegExpr attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />
        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" insensitive="true" firstNonSpace="true" />
        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s+[0-9]+" insensitive="true" firstNonSpace="true" />
      </context>

      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
        <LineContinue attribute="Preprocessor" context="#stay"/>
        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
        <IncludeRules context="##Doxygen" />
        <Detect2Chars attribute="Comment" context="Commentar/Preprocessor" char="/" char1="*" beginRegion="Comment2" />
      </context>

      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
        <LineContinue attribute="Preprocessor" context="#stay"/>
      </context>

      <context attribute="Comment" lineEndContext="#stay" name="Commentar/Preprocessor">
        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment2" />
      </context>

      <context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
        <DetectSpaces />
        <IncludeRules context="##Alerts" />
        <DetectIdentifier />
        <DetectChar attribute="String" context="String" char="&quot;"/>
        <IncludeRules context="##Doxygen" />
        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
        <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
        <RegExpr attribute="Preprocessor" context="#pop" String="#\s*el(?:se|if)" firstNonSpace="true" />
        <RegExpr attribute="Preprocessor" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
      </context>

      <context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
        <DetectSpaces />
        <IncludeRules context="##Alerts" />
        <DetectIdentifier />
        <DetectChar attribute="String" context="String" char="&quot;"/>
        <IncludeRules context="##Doxygen" />
        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
        <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
        <RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
      </context>
    </contexts>
    <itemDatas>
      <itemData name="Normal Text"  defStyleNum="dsNormal"/>
      <itemData name="Keyword"      defStyleNum="dsKeyword"/>
      <itemData name="Data Type"    defStyleNum="dsDataType"/>
      <itemData name="Decimal"      defStyleNum="dsDecVal"/>
      <itemData name="Octal"        defStyleNum="dsBaseN"/>
      <itemData name="Hex"          defStyleNum="dsBaseN"/>
      <itemData name="Float"        defStyleNum="dsFloat"/>
      <itemData name="Char"         defStyleNum="dsChar"/>
      <itemData name="String"       defStyleNum="dsString"/>
      <itemData name="String Char"  defStyleNum="dsChar"/>
      <itemData name="Comment"      defStyleNum="dsComment"/>
      <itemData name="Symbol"       defStyleNum="dsNormal"/>
      <itemData name="Preprocessor" defStyleNum="dsOthers"/>
      <itemData name="Prep. Lib"    defStyleNum="dsOthers"/> <!--,Qt::darkYellow,Qt::yellow,false,false)); -->
      <itemData name="Alert"        defStyleNum="dsAlert" />
      <itemData name="Region Marker" defStyleNum="dsRegionMarker" />
      <itemData name="Error"        defStyleNum="dsError" />
    </itemDatas>
  </highlighting>
  <general>
    <comments>
      <comment name="singleLine" start="//" />
      <comment name="multiLine" start="/*" end="*/" />
    </comments>
    <keywords casesensitive="1" additionalDeliminator="'&quot;" />
  </general>
</language>


using this file should be safe to use but as I am new to Linux community if you encounter a problem please inform me.

for further information about how to write a new kate's text highlighting xmls refer to the KDE4 documentation
Last edited by Keivan on Sun Oct 04, 2009 3:22 am, edited 2 times in total.
Keivan
 
Posts: 62
Joined: Sat Apr 22, 2006 4:28 am

Re: neuron syntax highlighting

Postby ted » Tue Sep 01, 2009 10:40 am

Thanks, Keivan!
ted
Site Admin
 
Posts: 1959
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine

Syntax Highlighting for Windows

Postby Keivan » Thu Oct 01, 2009 9:51 am

finally, I made syntax highlighting for notepad++ (for windows usres). I think it is better than the kate one.

instructions:
1) install notepad++
2) use a texteditor to replace content of the file "C:\Documents and Settings\<your user name>\Application Data\Notepad++\userDefineLang.xml"
with provided one (see below) .

19/10/2009 --> doEvents doNotify push_section pop_section and some built-in variables added + minor changes and bug fix
11/10/2009 --> added built-in range and segment variables
10/10/2009 --> added more built-in functions and some minor changes
Code: Select all
<NotepadPlus>
    <UserLang name="Neuron" ext="hoc ses nrn">
        <Settings>
            <Global caseIgnored="no" />
            <TreatAsSymbol comment="yes" commentLine="yes" />
            <Prefix words1="no" words2="no" words3="no" words4="no" />
        </Settings>
        <KeywordLists>
            <Keywords name="Delimiters">000000</Keywords>
            <Keywords name="Folder+">{</Keywords>
            <Keywords name="Folder-">}</Keywords>
            <Keywords name="Operators">&apos; - &quot; $ % &amp; ( ) , [ \ ] ^ { | } + &lt; = &gt;</Keywords>
            <Keywords name="Comment">1/* 2*/ 0//</Keywords>
            <Keywords name="Words1">abs arc3d area atan atan2 attr_praxis batch_run batch_save continuerun cos diam3d define_shape delete_section diam_changed disconnect distance doEvents doNotify erf erfc execute execute1 exp fadvance fclamp fclampi fclampv fcurrent finitialize fit_praxis fmatrix fprint frecord_init fscan fstim fstimi getSpineArea getstr ghk hoc_stdio hocmech initnrn int ion_charge ion_register ion_style ismembrane issection log log10 load_file n3d nernst nrncontrolmenu nrnglobalmechmenu nrnmainmenu nrnmechmenu nrnpointmenu nrnsecmenu parent_connection parent_node parent_section pop_section printf prstim psection pt3dchange pt3dclear pt3dconst pt3dinsert pt3dremove pt3dadd pt3dstyle push_section pval_praxis ri ropen secname sectionname section_exists section_orientation setdt setSpineArea sin spine3d sprint sqrt sred sscanf stdinit stop_praxis system tanh this_node this_section topology unref wopen x3d xbutton xcheckbox xfixedvalue xlabel xmenu xopen xpvalue xred xslider xstatebutton xvalue xvarlabel y3d z3d</Keywords>
            <Keywords name="Words2">Deck HBox Random VBox File List StringFunctions ValueFieldEditor GUIMath Matrix SymChooser Vector Glyph PWManager TextEditor Graph Pointer Timer CVode KSTrans ParallelNetManager SectionList FInitializeHandler LinearMechanism PlotShape SectionRef Impedance MechanismStandard Python Shape KSChan MechanismType RangeVarPlot KSGate NetCon SaveState KSState ParallelContext SectionBrowser</Keywords>
            <Keywords name="Words3">access break celsius cm connect continue create delete depvar diam do double dt else eqn external for for forall forsec func if ifsec ina init insert iterator L local localobj nai n_hh new nseg obfunc objectvar objref print proc public Ra read return setpointer stdrun steps_per_ms stop stoprun strdef secondorder t this tstop uninsert v v_init while</Keywords>
            <Keywords name="Words4">begintemplate endtemplate xpanel</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="KEYWORD1" styleID="5" fgColor="0080C0" bgColor="FFFFFF" fontName="" fontStyle="1" />
            <WordsStyle name="KEYWORD2" styleID="6" fgColor="800080" bgColor="FFFFFF" fontName="" fontStyle="1" />
            <WordsStyle name="KEYWORD3" styleID="7" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="1" />
            <WordsStyle name="KEYWORD4" styleID="8" fgColor="FF0080" bgColor="FFFFFF" fontName="" fontStyle="3" />
            <WordsStyle name="COMMENT" styleID="1" fgColor="00BF00" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="COMMENT LINE" styleID="2" fgColor="00BF00" bgColor="FFFFFF" fontName="" fontStyle="1" />
            <WordsStyle name="NUMBER" styleID="4" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="1" />
            <WordsStyle name="OPERATOR" styleID="10" fgColor="408080" bgColor="FFFFFF" fontName="" fontStyle="1" />
            <WordsStyle name="DELIMINER1" styleID="14" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
            <WordsStyle name="DELIMINER2" styleID="15" fgColor="FFFF00" bgColor="000000" fontName="" fontStyle="0" />
            <WordsStyle name="DELIMINER3" styleID="16" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" />
        </Styles>
    </UserLang>
</NotepadPlus>



todo --> activating folding --> it was not possible because of the limitations of the notepad++ --> I should choose between folding or active "{ }" operator --> I decided to choose active operator --> if you prefer folding just remove the "{ }" from the operator list

use this link for more Information about how to make a userdefined language for notepad++
Last edited by Keivan on Mon Oct 19, 2009 1:32 am, edited 6 times in total.
Keivan
 
Posts: 62
Joined: Sat Apr 22, 2006 4:28 am

Syntax Highlighting for Gnome

Postby Keivan » Sat Oct 03, 2009 3:31 pm

Syntax Highlighting for gedit
Instructions --> create a file with the extension "lang" ex. neuron.lang in the path "/usr/share/gtksourceview-2.0/language-specs" and copy the and past the content below in it.
I only tested it in ubuntu. do not blame me if it does not work properly on other distroes

Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<!--
Authors: Keivan Moradi
this is the modification of the original c.lang in ubuntu
-->
<language id="nrn" _name="neuron" version="2.0" _section="Sources">
    <metadata>
      <property name="mimetypes">text/x-c;text/x-csrc;image/x-xpixmap</property>
      <property name="globs">*.hoc</property>
      <property name="line-comment-start">//</property>
      <property name="block-comment-start">/*</property>
      <property name="block-comment-end">*/</property>
    </metadata>

    <styles>
        <style id="comment"           _name="Comment"             map-to="def:comment"/>
        <style id="error"             _name="Error"               map-to="def:error"/>
        <style id="string"            _name="String"              map-to="def:string"/>
        <style id="preprocessor"      _name="Preprocessor"        map-to="def:preprocessor"/>
        <style id="common-defines"    _name="Common Defines"      map-to="def:identifier"/>
        <style id="included-file"     _name="Included File"       map-to="def:string"/>
        <style id="char"              _name="Character"           map-to="def:character"/>
        <style id="keyword"           _name="Keyword"             map-to="def:keyword"/>
        <style id="type"              _name="Data Type"           map-to="def:type"/>
        <style id="storage-class"     _name="Storage Class"       map-to="js:object"/>
        <style id="printf"            _name="printf Conversion"   map-to="def:special-char"/>
        <style id="escaped-character" _name="Escaped Character"   map-to="def:special-char"/>
        <style id="floating-point"    _name="Floating point number" map-to="def:floating-point"/>
        <style id="decimal"           _name="Decimal number"      map-to="def:decimal"/>
        <style id="octal"             _name="Octal number"        map-to="def:base-n-integer"/>
        <style id="hexadecimal"       _name="Hexadecimal number"  map-to="def:base-n-integer"/>
        <style id="boolean"           _name="Boolean value"       map-to="def:note"/>
    </styles>

    <definitions>
        <!-- TODO: what about scanf ? -->
        <!-- man 3 printf -->
        <context id="printf" style-ref="printf" extend-parent="false">
            <match extended="true">
                \%\%|\%
                (?:[1-9][0-9]*\$)?      # argument
                [#0\-\ \+\'I]*          # flags
                (?:[1-9][0-9]*|\*)?     # width
                (?:\.\-?(?:[0-9]+|\*))? # precision
                (?:hh|ll|[hlLqjzt])?    # length modifier
                [diouxXeEfFgGaAcsCSpnm] # conversion specifier
            </match>
        </context>

        <define-regex id="escaped-character" extended="true">
            \\(                   # leading backslash
            [\\\"\'nrbtfav\?] |   # escaped character
            [0-7]{1,3} |          # one, two, or three octal digits
            x[0-9A-Fa-f]+         # 'x' followed by hex digits
            )
        </define-regex>

        <context id="nrn">
            <include>

                <!-- gtk-doc -->
                <context ref="gtk-doc:inline-docs-section"/>

                <!-- Comments -->
                <context id="comment" style-ref="comment" end-at-line-end="true">
                    <start>//</start>
                    <include>
                      <context ref="def:in-line-comment"/>
                    </include>
                </context>

                <context id="comment-multiline" style-ref="comment">
                    <start>/\*</start>
                    <end>\*/</end>
                    <include>
                        <context ref="def:in-comment"/>
                    </include>
                </context>

                <context id="close-comment-outside-comment" style-ref="error">
                    <match>\*/(?!\*)</match>
                </context>

                <!-- Preprocessor -->
                <define-regex id="preproc-start">^\s*#\s*</define-regex>

                <context id="if0-comment" style-ref="comment">
                    <start>\%{preproc-start}if\b\s*0\b</start>
                    <end>\%{preproc-start}(endif|else|elif)\b</end>
                    <include>
                        <context id="if-in-if0">
                            <start>\%{preproc-start}if(n?def)?\b</start>
                            <end>\%{preproc-start}endif\b</end>
                            <include>
                                <context ref="if-in-if0"/>
                                <context ref="def:in-comment"/>
                            </include>
                        </context>
                        <context ref="def:in-comment"/>
                    </include>
                </context>

                <context id="string" style-ref="string" end-at-line-end="true">
                    <start>L?"</start>
                    <end>"</end>
                    <include>
                        <context ref="printf"/>
                        <context id="escaped-character" style-ref="escaped-character">
                            <match>\%{escaped-character}</match>
                        </context>
                        <context ref="def:line-continue"/>
                    </include>
                </context>

                <context id="char" style-ref="char">
                    <match>L?'(\%{escaped-character}|.)'</match>
                </context>

                <!-- http://www.lysator.liu.se/c/ANSI-C-grammar-l.html -->
                <context id="float" style-ref="floating-point">
                    <match extended="true">
                        (?&lt;![\w\.])
                        ((\.[0-9]+ | [0-9]+\.[0-9]*) ([Ee][+-]?[0-9]*)? |
                         ([0-9]+[Ee][+-]?[0-9]*))
                        [fFlL]?
                        (?![\w\.])
                    </match>
                </context>

                <context id="hexadecimal" style-ref="hexadecimal">
                    <match extended="true">
                        (?&lt;![\w\.])
                        0[xX][a-fA-F0-9]+[uUlL]*
                        (?![\w\.])
                    </match>
                </context>

                <context id="octal" style-ref="octal">
                    <match extended="true">
                        (?&lt;![\w\.])
                        0[0-7]+[uUlL]*
                        (?![\w\.])
                    </match>
                </context>

                <context id="decimal" style-ref="decimal">
                    <match extended="true">
                        (?&lt;![\w\.])
                        [0-9]+[uUlL]*
                        (?![\w\.])
                    </match>
                </context>

                <!-- Keywords -->
                <context id="keywords" style-ref="keyword">
                   <keyword>access</keyword>
                   <keyword>break</keyword>
                   <keyword>connect</keyword>
                   <keyword>continue</keyword>
                   <keyword>create</keyword>
                   <keyword>delete</keyword>
                   <keyword>depvar</keyword>
                   <keyword>diam</keyword>
                   <keyword>do</keyword>
                   <keyword>double</keyword>
                   <keyword>else</keyword>
                   <keyword>eqn</keyword>
                   <keyword>external</keyword>
                   <keyword>if</keyword>
                   <keyword>for</keyword>
                   <keyword>proc</keyword>
                   <keyword>for</keyword>
                   <keyword>forall</keyword>
                   <keyword>forsec</keyword>
                   <keyword>func</keyword>
                   <keyword>ifsecl</keyword>
                   <keyword>init</keyword>
                   <keyword>insert</keyword>
                   <keyword>iterator</keyword>
                   <keyword>L</keyword>
                   <keyword>local</keyword>
                   <keyword>localobj</keyword>
                   <keyword>new</keyword>
                   <keyword>nseg</keyword>
                   <keyword>obfunc</keyword>
                   <keyword>objectvar</keyword>
                   <keyword>objref</keyword>
                   <keyword>print</keyword>
                   <keyword>public</keyword>
                   <keyword>Ra</keyword>
                   <keyword>read</keyword>
                   <keyword>return</keyword>
                   <keyword>setpointer</keyword>
                   <keyword>stop</keyword>
                   <keyword>strdef</keyword>
                   <keyword>this</keyword>
                   <keyword>uninsert</keyword>
                   <keyword>while</keyword>
                   <keyword>secondorder</keyword>
                   <keyword>t</keyword>
                   <keyword>dt</keyword>
                   <keyword>stoprun</keyword>
                   <keyword>celsius</keyword>
                </context>

                <context id="classes" style-ref="storage-class">
                   <keyword>Deck</keyword>
                   <keyword>HBox</keyword>
                   <keyword>Random</keyword>
                   <keyword>VBox</keyword>
                   <keyword>File</keyword>
                   <keyword>List</keyword>
                   <keyword>StringFunctions</keyword>
                   <keyword>ValueFieldEditor</keyword>
                   <keyword>GUIMath</keyword>
                   <keyword>Matrix</keyword>
                   <keyword>SymChooser</keyword>
                   <keyword>Vector</keyword>
                   <keyword>Glyph</keyword>
                   <keyword>PWManager</keyword>
                   <keyword>TextEditor</keyword>
                   <keyword>Graph</keyword>
                   <keyword>Pointer</keyword>
                   <keyword>Timer</keyword>
                   <keyword>CVode</keyword>
                   <keyword>KSTrans</keyword>
                   <keyword>ParallelNetManager</keyword>
                   <keyword>SectionList</keyword>
                   <keyword>FInitializeHandler</keyword>
                   <keyword>LinearMechanism</keyword>
                   <keyword>PlotShape</keyword>
                   <keyword>SectionRef</keyword>
                   <keyword>Impedance</keyword>
                   <keyword>MechanismStandard</keyword>
                   <keyword>Python</keyword>
                   <keyword>Shape</keyword>
                   <keyword>KSChan</keyword>
                   <keyword>MechanismType</keyword>
                   <keyword>RangeVarPlot</keyword>
                   <keyword>KSGate</keyword>
                   <keyword>NetCon</keyword>
                   <keyword>SaveState</keyword>
                   <keyword>KSState</keyword>
                   <keyword>ParallelContext</keyword>
                   <keyword>SectionBrowser</keyword>
                </context>

                <context id="builtin-functions" style-ref="common-defines">
                   <keyword>arc3d</keyword>
                   <keyword>area</keyword>
                   <keyword>attr_praxis</keyword>
                   <keyword>batch_run</keyword>
                   <keyword>batch_save</keyword>
                   <keyword>diam3d</keyword>
                   <keyword>define_shape</keyword>
                   <keyword>delete_section</keyword>
                   <keyword>diam_changed</keyword>
                   <keyword>disconnect</keyword>
                   <keyword>distance</keyword>
                   <keyword>execute</keyword>
                   <keyword>fadvance</keyword>
                   <keyword>fclamp</keyword>
                   <keyword>fclampi</keyword>
                   <keyword>fclampv</keyword>
                   <keyword>fcurrent</keyword>
                   <keyword>finitialize</keyword>
                   <keyword>fit_praxis</keyword>
                   <keyword>fmatrix</keyword>
                   <keyword>frecord_init</keyword>
                   <keyword>fstim</keyword>
                   <keyword>fstimi</keyword>
                   <keyword>getSpineArea</keyword>
                   <keyword>hocmech</keyword>
                   <keyword>initnrn</keyword>
                   <keyword>ismembrane</keyword>
                   <keyword>issection</keyword>
                   <keyword>n3d</keyword>
                   <keyword>nrnglobalmechmenu</keyword>
                   <keyword>nrnmechmenu</keyword>
                   <keyword>nrnpointmenu</keyword>
                   <keyword>nrnsecmenu</keyword>
                   <keyword>pt3dchange</keyword>
                   <keyword>pt3dclear</keyword>
                   <keyword>pt3dconst</keyword>
                   <keyword>spine3d</keyword>
                   <keyword>pt3dinsert</keyword>
                   <keyword>pt3dremove</keyword>
                   <keyword>pt3dadd</keyword>
                   <keyword>pt3dstyle</keyword>
                   <keyword>parent_connection</keyword>
                   <keyword>parent_node</keyword>
                   <keyword>parent_section</keyword>
                   <keyword>prstim</keyword>
                   <keyword>psection</keyword>
                   <keyword>pval_praxis</keyword>
                   <keyword>ri</keyword>
                   <keyword>secname</keyword>
                   <keyword>sectionname</keyword>
                   <keyword>section_exists</keyword>
                   <keyword>section_orientation</keyword>
                   <keyword>setSpineArea</keyword>
                   <keyword>sprint</keyword>
                   <keyword>stop_praxis</keyword>
                   <keyword>system</keyword>
                   <keyword>this_node</keyword>
                   <keyword>this_section</keyword>
                   <keyword>topology</keyword>
                   <keyword>unref</keyword>
                   <keyword>x3d</keyword>
                   <keyword>xbutton</keyword>
                   <keyword>xcheckbox</keyword>
                   <keyword>xfixedvalue</keyword>
                   <keyword>xlabel</keyword>
                   <keyword>xmenu</keyword>
                   <keyword>xpvalue</keyword>
                   <keyword>xslider</keyword>
                   <keyword>xstatebutton</keyword>
                   <keyword>xvalue</keyword>
                   <keyword>xvarlabel</keyword>
                   <keyword>y3d</keyword>
                   <keyword>z3d</keyword>
                </context>

      <context id="better-visibility" style-ref="boolean">
         <keyword>begintemplate</keyword>
         <keyword>endtemplate</keyword>
         <keyword>xpanel</keyword>
      </context>
      
            </include>
        </context>
    </definitions>
</language>
Keivan
 
Posts: 62
Joined: Sat Apr 22, 2006 4:28 am


Return to NEURON hacks

Who is online

Users browsing this forum: No registered users and 1 guest