less garbage during indexing (-30M for IDEA project), just in case each TokenSet...
authorMaxim.Mossienko <maxim.mossienko@jetbrains.com>
Wed, 2 May 2012 16:45:19 +0000 (20:45 +0400)
committerMaxim.Mossienko <maxim.mossienko@jetbrains.com>
Wed, 2 May 2012 17:31:04 +0000 (21:31 +0400)
java/java-psi-api/src/com/intellij/lexer/JavaDocTokenTypes.java
platform/core-api/src/com/intellij/lexer/DocCommentLexer.java
platform/core-api/src/com/intellij/lexer/DocCommentTokenTypes.java

index 109c7d6fbe939e1fd0cc0322d1e6dc2bbc17428e..2244cc99511b6fba25d235295ab8222241e293ba 100644 (file)
@@ -17,12 +17,14 @@ package com.intellij.lexer;
 
 import com.intellij.psi.JavaDocTokenType;
 import com.intellij.psi.tree.IElementType;
+import com.intellij.psi.tree.TokenSet;
 
 /**
  * @author yole
  */
 public class JavaDocTokenTypes implements DocCommentTokenTypes {
   public static final DocCommentTokenTypes INSTANCE = new JavaDocTokenTypes();
+  private final TokenSet mySpaceCommentsSet = TokenSet.create(JavaDocTokenType.DOC_SPACE, JavaDocTokenType.DOC_COMMENT_DATA);
 
   private JavaDocTokenTypes() { }
 
@@ -42,6 +44,11 @@ public class JavaDocTokenTypes implements DocCommentTokenTypes {
   }
 
   @Override
+  public TokenSet spaceCommentsTokenSet() {
+    return mySpaceCommentsSet;
+  }
+
+  @Override
   public IElementType space() {
     return JavaDocTokenType.DOC_SPACE;
   }
index 76e56d9da9de31e18a9308791d4bdb279852c917..95ef5604fc61759a1fb6e753fb1034b2f67228ce 100644 (file)
@@ -16,7 +16,6 @@
 package com.intellij.lexer;
 
 import com.intellij.psi.tree.IElementType;
-import com.intellij.psi.tree.TokenSet;
 import com.intellij.util.text.CharArrayUtil;
 
 import java.io.IOException;
@@ -24,7 +23,7 @@ import java.io.IOException;
 public class DocCommentLexer extends MergingLexerAdapter {
   public DocCommentLexer(final DocCommentTokenTypes tokenTypes, final boolean isJdk15Enabled) {
     super(new AsteriskStripperLexer(new _JavaDocLexer(isJdk15Enabled, tokenTypes), tokenTypes),
-          TokenSet.create(tokenTypes.commentData(), tokenTypes.space()));
+          tokenTypes.spaceCommentsTokenSet());
   }
 
   private static class AsteriskStripperLexer extends LexerBase {
index a41561ec1ec297886b5c35a495ab58921bb50a1d..33ae054e6e490485a99b7d3443bd53f17c6fbedd 100644 (file)
@@ -17,6 +17,7 @@
 package com.intellij.lexer;
 
 import com.intellij.psi.tree.IElementType;
+import com.intellij.psi.tree.TokenSet;
 
 /**
  * Allows to specify a set of language-dependent token types for the doc comment lexer.
@@ -27,6 +28,7 @@ public interface DocCommentTokenTypes {
   IElementType commentStart();
   IElementType commentEnd();
   IElementType commentData();
+  TokenSet spaceCommentsTokenSet();
   IElementType space();
   IElementType tagValueToken();
   IElementType tagValueLParen();