KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > ruby > RubyLanguage


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19 package org.netbeans.modules.ruby;
20
21 import org.netbeans.modules.ruby.lexer.RubyCommentTokenId;
22 import org.netbeans.modules.ruby.lexer.RubyStringTokenId;
23 import org.netbeans.modules.ruby.lexer.RubyTokenId;
24 import java.util.ArrayList JavaDoc;
25 import java.util.List JavaDoc;
26
27 import org.netbeans.api.gsf.GsfTokenId;
28 import org.netbeans.api.lexer.Language;
29 import org.netbeans.api.gsf.GsfLanguage;
30 import org.netbeans.api.lexer.TokenId;
31
32
33 /*
34  * Language/lexing configuration for Ruby
35  *
36  * @author Tor Norbye
37  */

38 public class RubyLanguage implements GsfLanguage {
39     public RubyLanguage() {
40     }
41
42     public List JavaDoc<? extends TokenId> getRelevantTokenTypes() {
43         List JavaDoc<TokenId> list = new ArrayList JavaDoc<TokenId>(30);
44         list.addAll(RubyTokenId.getUsedTokens());
45         list.add(RubyStringTokenId.STRING_TEXT);
46         list.add(RubyStringTokenId.STRING_ESCAPE);
47         list.add(RubyStringTokenId.STRING_INVALID);
48         list.add(RubyCommentTokenId.COMMENT_TEXT);
49         list.add(RubyCommentTokenId.COMMENT_TODO);
50         list.add(RubyCommentTokenId.COMMENT_RDOC);
51         list.add(RubyCommentTokenId.COMMENT_HTMLTAG);
52         list.add(RubyCommentTokenId.COMMENT_LINK);
53                 
54         return list;
55     }
56
57     public String JavaDoc getLineCommentPrefix() {
58         return "#"; // NOI18N
59
}
60
61     public boolean isIdentifierChar(char c) {
62         return Character.isJavaIdentifierPart(c) ||
63                 // Globals, fields and parameter prefixes (for blocks and symbols)
64
c == '$' || c == '@' || c == '&' || c == ':' ||
65                 // Function name suffixes
66
c == '!' || c == '?' || c == '=';
67     }
68     
69     public Language getLexerLanguage() {
70         return RubyTokenId.language();
71     }
72 }
73
Popular Tags