]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/catalog/modes/url.xml
basis/xmode: refactor to be deploy friendly.
[factor.git] / basis / xmode / catalog / modes / url.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE MODE SYSTEM "xmode.dtd">
3
4 <!-- URL mode, by Kevin Hunter of caktusgroup.com (kevin@) for jEdit -->
5 <!--
6 Attempting to implement http://en.wikipedia.org/wiki/URI_scheme.  Most
7 schemes should work.  There are some commented out.  However, as of
8 Wed, 11 Jun 2008, I'm still working out some kinks.  Specifically,
9 these work
10
11 http://www.example.com/
12 http://www.example.com/path/to/file?id=true
13 http://user@example.com/path/to/file
14 http://user:pass@example.com/path/to/file
15
16 and these don't work:
17
18 http://www.example.com   (no trailing / messes it up)
19 http://www.example.com/p/t/f?id=2&var=true ('&' and 'var' do not get marked) 
20 -->
21
22 <MODE>
23         <PROPS>
24                 <PROPERTY NAME='wordBreakChars' VALUE=',-=&lt;&gt;/?^&amp;*' />
25         </PROPS>
26
27         <RULES SET='DOMAINNAME'
28                 IGNORE_CASE='TRUE'
29                 >
30
31                 <MARK_PREVIOUS TYPE='LITERAL2' MATCH_TYPE='OPERATOR'>@</MARK_PREVIOUS>
32                 <MARK_PREVIOUS TYPE='LITERAL2' MATCH_TYPE='OPERATOR'>:</MARK_PREVIOUS>
33                 <MARK_PREVIOUS TYPE='LITERAL2' MATCH_TYPE='OPERATOR'>/</MARK_PREVIOUS>
34
35                 <SPAN_REGEXP MATCH_TYPE='LITERAL2' NO_LINE_BREAK='TRUE' NO_WORD_BREAK='TRUE'>
36                         <BEGIN>(?=\b[\w.:-]+@(\b))</BEGIN> <!-- Why doesn't this match at the *boundary* between :// and <username>?  It's wrapped in a (?=<look ahead assertion>) -->
37                         <END>$1</END>
38                 </SPAN_REGEXP>
39                 <SPAN_REGEXP MATCH_TYPE='LITERAL1' NO_LINE_BREAK='TRUE' NO_WORD_BREAK='TRUE'>
40                         <BEGIN>(\b)[\w.-]+((?=/))</BEGIN>
41                         <END>$1</END>
42                 </SPAN_REGEXP>
43                 <EOL_SPAN TYPE='LITERAL4' MATCH_TYPE='OPERATOR'>/</EOL_SPAN>
44         </RULES>
45         <RULES
46                 IGNORE_CASE='FALSE'
47                 HIGHLIGHT_DIGITS='TRUE' DIGIT_RE='[0-9][0-9a-zA-Z]*'>
48
49                 <MARK_FOLLOWING TYPE='LITERAL2' MATCH_TYPE='OPERATOR'>?</MARK_FOLLOWING>
50                 <!-- <MARK_FOLLOWING TYPE='LITERAL2' MATCH_TYPE='OPERATOR'>&amp;</MARK_FOLLOWING> -->
51
52                 <SEQ TYPE='OPERATOR'>/</SEQ>
53                 <SEQ TYPE='LITERAL4'>+</SEQ>
54
55                 <SPAN_REGEXP TYPE='LITERAL1' MATCH_TYPE='OPERATOR' NO_LINE_BREAK='TRUE' NO_WORD_BREAK='FALSE'>
56                         <BEGIN>=</BEGIN>
57                         <END>&amp;</END>
58                 </SPAN_REGEXP>
59                 <SPAN DELEGATE='DOMAINNAME' TYPE='LITERAL2' MATCH_TYPE='OPERATOR' NO_LINE_BREAK='TRUE' NO_WORD_BREAK='TRUE'>
60                         <BEGIN>://</BEGIN>
61                         <END>/</END>
62                 </SPAN>
63
64                 <IMPORT DELEGATE='SCHEMES' />
65         </RULES>
66         <RULES SET='SCHEMES' IGNORE_CASE='TRUE'>
67                 <KEYWORDS>
68                         <!-- Url types -->
69                         <KEYWORD1>aaa</KEYWORD1>             <!-- Diameter Protocol                                                 RFC 3588 -->
70                         <KEYWORD1>aaas</KEYWORD1>            <!-- Diameter Protocol (secure)                                        RFC 3588 -->
71                         <KEYWORD1>acap</KEYWORD1>            <!-- Application Configuration Access Protocol                         RFC 2244 -->
72                         <KEYWORD1>cap</KEYWORD1>             <!-- Calendar access protocol                                          RFC 4324 -->
73                         <KEYWORD1>cid</KEYWORD1>             <!-- Referencing individual parts of an SMTP/MIME message              RFC 2392 -->
74                         <KEYWORD1>crid</KEYWORD1>            <!-- TV-Anytime Content Reference Identifier                           RFC 4078 -->
75                         <KEYWORD1>data</KEYWORD1>            <!-- Inclusion of small data items inline                              RFC 2397 -->
76                         <KEYWORD1>dav</KEYWORD1>             <!-- HTTP Extensions for Distributed Authoring (WebDAV)                RFC 2518 -->
77                         <KEYWORD1>dict</KEYWORD1>            <!-- Dictionary service protocol                                       RFC 2229 -->
78                         <KEYWORD1>dns</KEYWORD1>             <!-- Domain Name System                                                RFC 4501 -->        
79                         <KEYWORD1>fax</KEYWORD1>             <!-- Used for telefacsimile numbers                                    RFC 2806 -->
80                         <KEYWORD1>ftp</KEYWORD1>             <!-- File Transfer Protocal                                            RFC 1738 -->
81                         <KEYWORD1>file</KEYWORD1>            <!-- Addressing files on local or network file systems                 RFC 1738 -->
82                         <KEYWORD1>ftp</KEYWORD1>             <!-- FTP resources                                                     RFC 1738 -->
83                         <KEYWORD1>go</KEYWORD1>              <!-- Common Name Resolution Protocol                                   RFC 3368 -->
84                         <KEYWORD1>gopher</KEYWORD1>          <!-- Used with Gopher protocol                                         RFC 4266 -->
85                         <KEYWORD1>h323</KEYWORD1>            <!-- Used with H.323 multimedia communications                         RFC 3508 -->
86                         <KEYWORD1>http</KEYWORD1>            <!-- HTTP resources                                                    RFC 2616 -->
87                         <KEYWORD1>https</KEYWORD1>           <!-- HTTP connections secured using SSL/TLS                            RFC 2817 -->
88                         <KEYWORD1>icap</KEYWORD1>            <!-- Internet Content Adaptation Protocol                              RFC 3507 -->
89                         <KEYWORD1>im</KEYWORD1>              <!-- Instant messaging protocol                                        RFC 3860 RFC 4622 -->
90                         <KEYWORD1>imap</KEYWORD1>            <!-- Accessing e-mail resources through IMAP                           RFC 2192 -->
91                         <KEYWORD1>info</KEYWORD1>            <!-- Information Assets with Identifiers in Public Namespaces          RFC 4452 -->
92                         <KEYWORD1>ipp</KEYWORD1>             <!-- Internet Printing Protocol                                        RFC 3510 -->
93                         <KEYWORD1>iris</KEYWORD1>            <!-- Internet Registry Information Service                             RFC 3981 -->
94                         <KEYWORD1>ldap</KEYWORD1>            <!-- LDAP directory request                                            RFC 2255 RFC 4516 -->
95                         <!-- <KEYWORD1>mailto</KEYWORD1>          SMTP e-mail addresses and default content                         RFC 2368 --> 
96                         <KEYWORD1>mid</KEYWORD1>             <!-- Referencing SMTP/MIME messages, or parts of messages.             RFC 2392 -->
97                         <KEYWORD1>modem</KEYWORD1>           <!-- modem                                                             RFC 3966 -->
98                         <KEYWORD1>msrp</KEYWORD1>            <!-- msrps         Message Session Relay Protocol                           RFC 4975 -->
99                         <KEYWORD1>mtqp</KEYWORD1>            <!-- Message Tracking Query Protocol                                   RFC 3887 -->
100                         <KEYWORD1>mupdate</KEYWORD1>         <!-- Mailbox Update Protocol                                           RFC 3656 -->
101                         <KEYWORD1>news</KEYWORD1>            <!-- (Usenet) newsgroups and postings                                  RFC 1738 -->
102                         <KEYWORD1>nfs</KEYWORD1>             <!-- Network File System resources                                     RFC 2224 -->
103                         <KEYWORD1>nntp</KEYWORD1>            <!-- Usenet NNTP                                                       RFC 1738 -->
104                         <KEYWORD1>opaquelocktoken</KEYWORD1> <!-- opaquelocktoken                                                   RFC 4918 -->
105                         <KEYWORD1>pop</KEYWORD1>             <!-- Accessing mailbox through POP3                                    RFC 2384 -->
106                         <KEYWORD1>pres</KEYWORD1>            <!-- Used in Common Profile for Presence (CPP) to identify presence    RFC 3859 -->
107                         <KEYWORD1>prospero</KEYWORD1>        <!-- Prospero Directory Service                                        RFC 4157 -->
108                         <KEYWORD1>rtsp</KEYWORD1>            <!-- Real Time Streaming Protocol                                      RFC 2326 -->
109                         <KEYWORD1>service</KEYWORD1>         <!-- ???                                                               RFC 2609 -->
110                         <KEYWORD1>shttp</KEYWORD1>           <!-- Secure HTTP                                                       RFC 2660 -->
111                         <!-- <KEYWORD1>sip</KEYWORD1>             Used with Session Initiation Protocol (SIP)                       RFC 3969 RFC 3261 -->
112                         <!-- <KEYWORD1>sips</KEYWORD1>            Secure equivalent of sip                                          RFC 3969 RFC 3261 -->
113                         <KEYWORD1>snmp</KEYWORD1>            <!-- Simple Network Management Protocol                                RFC 4088 -->
114                         <KEYWORD1>tag</KEYWORD1>             <!-- ???                                                               RFC 4151 -->
115                         <KEYWORD1>telnet</KEYWORD1>          <!-- Used with telnet                                                  RFC 4248 -->
116                         <KEYWORD1>tftp</KEYWORD1>            <!-- Trivial File Transfer Protocol                                    RFC 3617 -->
117                         <KEYWORD1>thismessage</KEYWORD1>     <!-- multipart/related relative reference resolution                   RFC 2557 -->
118                         <KEYWORD1>tip</KEYWORD1>             <!-- Transaction Internet Protocol                                     RFC 2371 -->
119                         <KEYWORD1>tv</KEYWORD1>              <!-- TV Broadcasts                                                     RFC 2838 -->
120                         <KEYWORD1>urn</KEYWORD1>             <!-- Uniform Resource Names                                            RFC 2141 -->
121                         <KEYWORD1>vemmi</KEYWORD1>           <!-- Versatile Multimedia Interface                                    RFC 2122 -->
122                         <KEYWORD1>wais</KEYWORD1>            <!-- Used with Wide area information server (WAIS)                     RFC 4156 -->
123                         <KEYWORD1>xmlrpc.beep</KEYWORD1>     <!-- xmlrpc.beep                                                       RFC 3529 -->
124                         <KEYWORD1>xmpp</KEYWORD1>            <!-- XMPP (Jabber)                                                     RFC 5122 -->
125
126                         <!-- Unofficial but common URL schemes -->
127                         <KEYWORD2>chrome</KEYWORD2>           <!-- Used in Mozilla/Gecko based browsers                                  -->
128                         <KEYWORD2>cvs</KEYWORD2>              <!-- Concurrent Versions System (CVS) Repository Access                    -->
129                         <!-- <KEYWORD2>ed2k</KEYWORD2>             Resources available using the eDonkey2000 network                     -->
130                         <KEYWORD2>feed</KEYWORD2>             <!-- web feed subscription                                                 -->
131                         <KEYWORD2>fish</KEYWORD2>             <!-- Accessing another computer's files using the SSH protocol             -->
132                         <KEYWORD2>gg</KEYWORD2>               <!-- Starting chat with Gadu-Gadu user                                     -->
133                         <KEYWORD2>gizmoproject</KEYWORD2>     <!-- Gizmo Project calling link.                                           -->
134                         <!-- <KEYWORD2>iax2</KEYWORD2>             Inter-Asterisk eXchange protocol version 2                 IETF Draft -->
135                         <KEYWORD2>irc</KEYWORD2>              <!-- Connecting to a server to join a channel.                  IETF Draft -->
136                         <KEYWORD2>ircs</KEYWORD2>             <!-- Secure equivalent of irc                                   IETF Draft -->
137                         <KEYWORD2>keyparc</KEYWORD2>          <!-- Keyparc encrypt/decrypt resource.                                     -->
138                         <KEYWORD2>lastfm</KEYWORD2>           <!-- Connecting to a radio stream from Last.fm.                            -->
139                         <KEYWORD2>ldaps</KEYWORD2>            <!-- Secure equivalent of ldap                                             -->
140                         <!-- <KEYWORD2>magnet</KEYWORD2>           "magnet links"                                                        -->
141                         <KEYWORD2>(other</KEYWORD2>           <!-- parameters are also possible)                                         -->
142                         <KEYWORD2>mms</KEYWORD2>             <!-- Windows streaming media                                               -->
143                         <!-- <KEYWORD2>mvn</KEYWORD2>              Access Apache Maven repository artifacts                              -->
144                         <KEYWORD2>nsfw</KEYWORD2>             <!-- Not Safe For Work                                                     -->
145                         <KEYWORD2>psyc</KEYWORD2>             <!-- Used to identify or locate a person, group, or place                  -->
146                         <KEYWORD2>rsync</KEYWORD2>            <!-- Rsync                                                                 -->
147                         <KEYWORD2>secondlife</KEYWORD2>       <!-- Open the Map floater in Second Life                                   -->
148                         <KEYWORD2>sftp</KEYWORD2>             <!-- SFTP file transfers (not FTPS (FTP/SSL))                   IETF Draft -->
149                         <KEYWORD2>skype</KEYWORD2>            <!-- Launching Skype call (official; see also callto:)                     -->
150                         <KEYWORD2>ssh</KEYWORD2>              <!-- SSH connections (like telnet:) and                                    -->
151                         <KEYWORD2>smb</KEYWORD2>              <!-- Accessing SMB/CIFS shares                                  IETF Draft -->
152                         <KEYWORD2>soldat</KEYWORD2>           <!-- Joining servers                                                       -->
153                         <!-- <KEYWORD2>steam</KEYWORD2>            Interact with Steam                                                   -->
154                         <KEYWORD2>teamspeak</KEYWORD2>        <!-- Joining a server.                                                     -->
155                         <KEYWORD2>unreal</KEYWORD2>           <!-- Joining servers                                                       -->
156                         <KEYWORD2>ut2004</KEYWORD2>           <!-- Joining servers                                                       -->
157                         <KEYWORD2>ventrilo</KEYWORD2>         <!-- Joining a server.                                                     -->
158                         <!-- <KEYWORD2>view-source</KEYWORD2>      Shows a web page as code 'in the raw'.                                -->
159                         <KEYWORD2>webcal</KEYWORD2>           <!-- Subscribing to calendars in iCalendar format                          -->
160                         <KEYWORD2>wyciwyg</KEYWORD2>          <!-- What You Cache Is What You Get WYCIWYG                                -->
161                         <KEYWORD2>xfire</KEYWORD2>            <!-- Adding friends and servers, joining servers                           -->
162                         <KEYWORD2>ymsgr</KEYWORD2>            <!-- Sending an instant message to a Yahoo! Contact.                       -->
163                 </KEYWORDS>
164         </RULES>
165 </MODE>
166