diff --git a/plugins/gettext/src/META-INF/plugin.xml b/plugins/gettext/src/META-INF/plugin.xml
index 3f91a8f5968a..79d3d137d04f 100644
--- a/plugins/gettext/src/META-INF/plugin.xml
+++ b/plugins/gettext/src/META-INF/plugin.xml
@@ -13,20 +13,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/plugins/gettext/src/com/jetbrains/gettext/GetText.flex b/plugins/gettext/src/com/jetbrains/gettext/GetText.flex
index d20b2d432ec2..da8fea52e09a 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/GetText.flex
+++ b/plugins/gettext/src/com/jetbrains/gettext/GetText.flex
@@ -26,35 +26,26 @@ import com.jetbrains.gettext.GetTextElementType;
%ignorecase
EOL = (\r|\n|\r\n)
-NO_EOL = !(\r|\n|\r\n)
SPACE = [ \t\f]
WHITE_SPACE = {EOL} | {SPACE}
STRING_TAIL = [^\r\n]*
QUOTED_STRING = ("\"")~(\r|\n|\r\n|"\"")
-TMP_QUOTED_STRING = ("\"")~("\"")
DOUBLEQUOTE = \"
-DOUBLEQUOTED_STRING = ([^\"] | \"\" | \\\")+
LBRACE = "["
RBRACE = "]"
NUMBER = [0-9]*
+LETTERS = [a-zA-Z]*
COMMENT_SYMBOL = "#"
-COMMENT_TYPE_SYMBOLS = ("#."|"#:"|"#,"|"#|")
-COMMENT = (" "|\t|\f)~{EOL}
-EXTRACTED_COMMENT = (".")~{EOL}
-REFERENCE_COMMENT = (":")~{EOL}
-PREVIOUS_COMMENT = ("|")~{EOL}
+EXTRACTED_COMMENT = ("."){STRING_TAIL}
+REFERENCE_COMMENT = (":"){STRING_TAIL}
+PREVIOUS_COMMENT = ("|"){STRING_TAIL}
FLAG_GROUP = (",")
-DOT = "."
-COLON = ":"
-LINE = "|"
-COMMA = ","
-
MSGCTXT = "msgctxt"
MSGID = "msgid"
MSGID_PLURAL = "msgid_plural"
@@ -62,43 +53,17 @@ MSGSTR = "msgstr"
FUZZY_FLAG = "fuzzy"
-NO = "no-"
FORMAT = "-format"
-C = "c"
-OBJC = "objc"
-SH = "sh"
-PYTHON = "python"
-LISP = "lisp"
-ELISP = "elisp"
-LIBREP = "librep"
-SCHEME = "scheme"
-SMALLTALK = "smalltalk"
-JAVA = "java"
-CSHARP = "csharp"
-AWK = "awk"
-YCP = "ycp"
-TCL = "tcl"
-PERL = "perl-brace"
-PHP = "php"
-GCC = "gcc-internal"
-GFC = "gfc-internal"
-QT = "qt"
-KDE = "kde"
-BOOST = "boost"
-OBJECT_PASCAL = "object-pascal"
-QT_PLURAL = "qt-plural"
-
-PASCAL_FORMAT_FLAG = "object-pascal-format"
-NO_PASCAL_FORMAT_FLAG = "no-object-pascal-format"
-QT_FORMAT_FLAG = "qt-plural-format"
-NO_QT_FORMAT_FLAG = "no-qt-plural-format"
-FORMAT_FLAG = (C|OBJC|SH|PYTHON|LISP|EISP|LIBREP|SCHEME|SMALLTALK|JAVA|SCHARP|AWK|OBJECT_PASCAL|YCP|TCL|PERL|PHP|GCC|GFC|QT|QT_PLURAL|KDE|BOOST) {FORMAT}
+NO = "no-"
+FORMAT_FLAG = ("c"|"objc"|"sh"|"python"|"lisp"|"elisp"|"librep"|"scheme"|"smalltalk"|"java"|
+"csharp"|"awk"|"object-pascal"|"ycp"|"tcl"|"perl-brace"|"php"|"gcc-internal"|"gfc-internal"|
+"qt"|"qt-plural"|"kde"|"boost") {FORMAT}
NO_FORMAT_FLAG = {NO} {FORMAT_FLAG}
-
RANGE_FLAG = "range"
DOTS = ".."
FLAG_DELIVERY=","
+COLON = ":"
%state START_COMMENT
%state COMMENT
@@ -114,10 +79,10 @@ FLAG_DELIVERY=","
{COMMENT_SYMBOL} { yybegin(START_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;}
{SPACE} { yybegin(COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;}
- {DOT} { yybegin(EXTR_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;}
- {COLON} { yybegin(REFERENCE_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;}
- {LINE} { yybegin(PREVIOUS_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;}
- {FLAG_GROUP} { yybegin(FLAG_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;}
+ {EXTRACTED_COMMENT} { yybegin(EXTR_COMMENT); return GetTextTokenTypes.EXTR_COMMENT;}
+ {REFERENCE_COMMENT} { yybegin(REFERENCE_COMMENT); return GetTextTokenTypes.REFERENCE;}
+ {PREVIOUS_COMMENT} { yybegin(PREVIOUS_COMMENT); return GetTextTokenTypes.PREVIOUS_COMMENT;}
+ {FLAG_GROUP} { yybegin(FLAG_COMMENT); return GetTextTokenTypes.FLAG_COMMENT;}
{EOL} { yybegin(YYINITIAL); return GetTextTokenTypes.WHITE_SPACE;}
{EOL} { yybegin(YYINITIAL); return GetTextTokenTypes.WHITE_SPACE;}
@@ -132,29 +97,31 @@ FLAG_DELIVERY=","
{STRING_TAIL} { return GetTextTokenTypes.REFERENCE;}
{STRING_TAIL} { return GetTextTokenTypes.PREVIOUS_COMMENT;}
- {PASCAL_FORMAT_FLAG} { yybegin(FLAG_DEL); return GetTextTokenTypes.FORMAT_FLAG;}
- {NO_PASCAL_FORMAT_FLAG} { yybegin(FLAG_DEL); return GetTextTokenTypes.NO_FORMAT_FLAG;}
- {QT_FORMAT_FLAG} { yybegin(FLAG_DEL); return GetTextTokenTypes.FORMAT_FLAG;}
- {NO_QT_FORMAT_FLAG} { yybegin(FLAG_DEL); return GetTextTokenTypes.NO_FORMAT_FLAG;}
{FORMAT_FLAG} { yybegin(FLAG_DEL); return GetTextTokenTypes.FORMAT_FLAG;}
{NO_FORMAT_FLAG} { yybegin(FLAG_DEL); return GetTextTokenTypes.NO_FORMAT_FLAG;}
{FUZZY_FLAG} { yybegin(FLAG_DEL); return GetTextTokenTypes.FUZZY_FLAG;}
{RANGE_FLAG} { yybegin(FLAG_DEL); return GetTextTokenTypes.RANGE_FLAG;}
{FLAG_DELIVERY} { yybegin(FLAG_COMMENT); return GetTextTokenTypes.FLAG_DELIVERY;}
+ {SPACE} { return GetTextTokenTypes.FLAG_DELIVERY;}
+ {NUMBER} { return GetTextTokenTypes.RANGE_NUMBER;}
+ {COLON} { return GetTextTokenTypes.COLON;}
+ {DOTS} { return GetTextTokenTypes.DOTS;}
+ [^] { return GetTextTokenTypes.BAD_FLAG_COMMENT; }
+{MSGCTXT} { return GetTextTokenTypes.MSGCTXT;}
{MSGCTXT} { return GetTextTokenTypes.MSGCTXT;}
{MSGID} { return GetTextTokenTypes.MSGID;}
{MSGID_PLURAL} { return GetTextTokenTypes.MSGID_PLURAL;}
{MSGSTR} { return GetTextTokenTypes.MSGSTR;}
+ {LETTERS} { return GetTextTokenTypes.COMMAND;}
{WHITE_SPACE} { return GetTextTokenTypes.WHITE_SPACE;}
- {SPACE} { return GetTextTokenTypes.WHITE_SPACE;}
+
{NUMBER} { return GetTextTokenTypes.NUMBER;}
{LBRACE} { return GetTextTokenTypes.LBRACE;}
{RBRACE} { return GetTextTokenTypes.RBRACE;}
-{COLON} { return GetTextTokenTypes.COLON;}
-{DOTS} { return GetTextTokenTypes.DOTS;}
+{DOUBLEQUOTE} { return GetTextTokenTypes.QUOTE;}
{QUOTED_STRING} { return GetTextTokenTypes.STRING;}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/GetTextFileViewProvider.java b/plugins/gettext/src/com/jetbrains/gettext/GetTextFileViewProvider.java
deleted file mode 100644
index 2b806f7e9875..000000000000
--- a/plugins/gettext/src/com/jetbrains/gettext/GetTextFileViewProvider.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.jetbrains.gettext;
-
-import com.intellij.lang.Language;
-import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.psi.PsiManager;
-import com.intellij.psi.SingleRootFileViewProvider;
-import org.jetbrains.annotations.NotNull;
-
-/**
- * @author Svetlana.Zemlyanskaya
- */
-public class GetTextFileViewProvider extends SingleRootFileViewProvider {
-
- protected GetTextFileViewProvider(@NotNull PsiManager manager, @NotNull VirtualFile virtualFile, final boolean physical, @NotNull Language language) {
- super(manager, virtualFile, physical, language);
- }
-
- public boolean supportsIncrementalReparse(@NotNull final Language rootLanguage) {
- return false;
- }
-}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/GetTextFileViewProviderFactory.java b/plugins/gettext/src/com/jetbrains/gettext/GetTextFileViewProviderFactory.java
deleted file mode 100644
index 07d5914c3166..000000000000
--- a/plugins/gettext/src/com/jetbrains/gettext/GetTextFileViewProviderFactory.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.jetbrains.gettext;
-
-import com.intellij.lang.Language;
-import com.intellij.openapi.vfs.VirtualFile;
-import com.intellij.psi.FileViewProvider;
-import com.intellij.psi.FileViewProviderFactory;
-import com.intellij.psi.PsiManager;
-import org.jetbrains.annotations.NotNull;
-
-/**
- * @author Svetlana.Zemlyanskaya
- */
-public class GetTextFileViewProviderFactory implements FileViewProviderFactory {
-
- public FileViewProvider createFileViewProvider(@NotNull VirtualFile file, Language language, @NotNull PsiManager manager, boolean physical) {
- return new GetTextFileViewProvider(manager, file, physical, language);
- }
-}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/GetTextTokenTypes.java b/plugins/gettext/src/com/jetbrains/gettext/GetTextTokenTypes.java
index fb32c5570c45..83f27856073e 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/GetTextTokenTypes.java
+++ b/plugins/gettext/src/com/jetbrains/gettext/GetTextTokenTypes.java
@@ -24,9 +24,9 @@ public interface GetTextTokenTypes {
IElementType FORMAT_FLAG = new GetTextElementType("FORMAT_FLAG");
IElementType NO_FORMAT_FLAG = new GetTextElementType("NO_FORMAT_FLAG");
IElementType FLAG_DELIVERY = new GetTextElementType("DELIVERY");
+ IElementType BAD_FLAG_COMMENT = new GetTextElementType("BAD_FLAG_COMMENT");
- IElementType MSG = new GetTextElementType("MSG_START");
-
+ IElementType COMMAND = new GetTextElementType("COMMAND");
IElementType MSGCTXT = new GetTextElementType("MSGCTXT");
IElementType MSGID = new GetTextElementType("MSGID");
IElementType MSGID_PLURAL = new GetTextElementType("MSGID_PLURAL");
@@ -35,15 +35,20 @@ public interface GetTextTokenTypes {
IElementType COLON = new GetTextElementType("COLON");
IElementType DOTS = new GetTextElementType("DOTS");
IElementType NUMBER = new GetTextElementType("NUMBER");
+ IElementType RANGE_NUMBER = new GetTextElementType("RANGE_NUMBER");
IElementType LBRACE = new GetTextElementType("LBRACE");
IElementType RBRACE = new GetTextElementType("RBRACE");
+ IElementType QUOTE = new GetTextElementType("QUOTE");
IElementType STRING = new GetTextElementType("STRING");
- TokenSet SYSTEM_COMMENTS = TokenSet.create(EXTR_COMMENT, REFERENCE, FLAG_COMMENT, PREVIOUS_COMMENT, FLAG_DELIVERY, COMMENT_SYMBOLS);
+ TokenSet SYSTEM_COMMENTS = TokenSet.create(EXTR_COMMENT, REFERENCE, FLAG_COMMENT, PREVIOUS_COMMENT,
+ FLAG_DELIVERY, COMMENT_SYMBOLS, BAD_FLAG_COMMENT);
TokenSet COMMENTS = TokenSet.orSet(TokenSet.create(COMMENT), SYSTEM_COMMENTS);
- TokenSet STRING_LITERALS = TokenSet.create(STRING);
- TokenSet KEYWORDS = TokenSet.create(MSG, MSGCTXT, MSGID, MSGID_PLURAL, MSGSTR);
+ TokenSet STRING_LITERALS = TokenSet.create(STRING, QUOTE);
+ TokenSet KEYWORDS = TokenSet.create(MSGCTXT, MSGID, MSGID_PLURAL, MSGSTR, COMMAND);
TokenSet FLAGS = TokenSet.create(FUZZY_FLAG, FORMAT_FLAG, NO_FORMAT_FLAG, RANGE_FLAG);
+ TokenSet FLAG_LINE = TokenSet.orSet(FLAGS, TokenSet.create(FLAG_COMMENT,FLAG_DELIVERY, BAD_FLAG_COMMENT, COLON, DOTS, RANGE_NUMBER));
TokenSet BRACES = TokenSet.create(LBRACE, RBRACE);
+ TokenSet NUMBERS = TokenSet.create(NUMBER, RANGE_NUMBER);
}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/_GetTextLexer.java b/plugins/gettext/src/com/jetbrains/gettext/_GetTextLexer.java
index 9b20ffd1d9cf..9919e79601f0 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/_GetTextLexer.java
+++ b/plugins/gettext/src/com/jetbrains/gettext/_GetTextLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 7/10/12 5:05 PM */
+/* The following code was generated by JFlex 1.4.3 on 7/11/12 4:30 PM */
package com.jetbrains.gettext;
@@ -9,7 +9,7 @@ import com.intellij.psi.tree.IElementType;
/**
* This class is a scanner generated by
* JFlex 1.4.3
- * on 7/10/12 5:05 PM from the specification file
+ * on 7/11/12 4:30 PM from the specification file
* /home/svetlana/git/idea/IDEA/tools/lexer/../../community/plugins/gettext/src/com/jetbrains/gettext/GetText.flex
*/
class _GetTextLexer implements FlexLexer {
@@ -41,13 +41,13 @@ class _GetTextLexer implements FlexLexer {
*/
private static final String ZZ_CMAP_PACKED =
"\11\0\1\3\1\2\1\0\1\3\1\1\22\0\1\3\1\0\1\4"+
- "\1\10\10\0\1\13\1\40\1\11\1\0\12\7\1\12\6\0\1\32"+
- "\1\41\1\20\1\24\1\44\1\33\1\17\1\43\1\23\1\42\1\45"+
- "\1\27\1\15\1\36\1\37\1\26\1\50\1\31\1\16\1\21\1\30"+
- "\1\46\1\47\1\22\1\35\1\34\1\5\1\0\1\6\1\0\1\25"+
- "\1\0\1\32\1\41\1\20\1\24\1\44\1\33\1\17\1\43\1\23"+
- "\1\42\1\45\1\27\1\15\1\36\1\37\1\26\1\50\1\31\1\16"+
- "\1\21\1\30\1\46\1\47\1\22\1\35\1\34\1\0\1\14\uff83\0";
+ "\1\11\10\0\1\15\1\37\1\12\1\0\12\7\1\13\6\0\1\33"+
+ "\1\42\1\21\1\25\1\45\1\34\1\20\1\44\1\24\1\43\1\46"+
+ "\1\30\1\16\1\41\1\40\1\27\1\10\1\32\1\17\1\22\1\31"+
+ "\1\47\1\50\1\23\1\36\1\35\1\5\1\0\1\6\1\0\1\26"+
+ "\1\0\1\33\1\42\1\21\1\25\1\45\1\34\1\20\1\44\1\24"+
+ "\1\43\1\46\1\30\1\16\1\41\1\40\1\27\1\10\1\32\1\17"+
+ "\1\22\1\31\1\47\1\50\1\23\1\36\1\35\1\0\1\14\uff83\0";
/**
* Translates characters to character classes
@@ -60,15 +60,18 @@ class _GetTextLexer implements FlexLexer {
private static final int [] ZZ_ACTION = zzUnpackAction();
private static final String ZZ_ACTION_PACKED_0 =
- "\2\1\1\2\1\3\1\4\1\5\2\1\1\6\2\7"+
- "\1\6\1\10\1\11\1\1\1\12\1\6\1\13\1\6"+
- "\2\14\1\15\1\16\1\17\1\20\1\21\2\2\2\3"+
- "\2\4\2\5\21\6\1\22\1\0\2\23\1\24\101\0"+
- "\1\25\3\0\1\26\1\27\22\0\1\30\20\0\1\31"+
- "\17\0\1\32\23\0\1\33\1\0\1\34\2\0";
+ "\1\1\1\2\1\3\1\4\1\5\1\6\2\7\1\10"+
+ "\2\11\1\12\1\13\1\14\1\2\1\1\1\15\1\1"+
+ "\2\16\1\17\1\20\1\21\1\22\1\23\1\10\2\3"+
+ "\2\4\2\5\2\6\1\24\1\25\1\24\1\7\2\24"+
+ "\1\26\21\24\1\27\1\0\2\30\1\1\2\0\1\31"+
+ "\24\0\1\1\21\0\3\1\36\0\2\1\1\32\2\0"+
+ "\1\32\6\0\1\33\1\34\23\0\1\35\1\1\1\0"+
+ "\1\35\24\0\1\36\1\0\1\36\23\0\1\37\34\0"+
+ "\1\40\2\0\1\41\3\0";
private static int [] zzUnpackAction() {
- int [] result = new int[203];
+ int [] result = new int[252];
int offset = 0;
offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
return result;
@@ -94,34 +97,40 @@ class _GetTextLexer implements FlexLexer {
private static final String ZZ_ROWMAP_PACKED_0 =
"\0\0\0\51\0\122\0\173\0\244\0\315\0\366\0\u011f"+
- "\0\u0148\0\u0171\0\u0148\0\u019a\0\u0148\0\u0148\0\u01c3\0\u0148"+
- "\0\u01ec\0\u0148\0\u0215\0\u023e\0\u0148\0\u0148\0\u01ec\0\u0148"+
- "\0\u0148\0\u0148\0\u0267\0\u0290\0\u02b9\0\u02e2\0\u030b\0\u0334"+
- "\0\u035d\0\u0386\0\u03af\0\u03d8\0\u0401\0\u042a\0\u0453\0\u047c"+
- "\0\u04a5\0\u04ce\0\u04f7\0\u0520\0\u0549\0\u0572\0\u059b\0\u05c4"+
- "\0\u05ed\0\u0616\0\u063f\0\u0148\0\u019a\0\u0668\0\u0148\0\u0148"+
- "\0\u0691\0\u06ba\0\u06e3\0\u0401\0\u070c\0\u0735\0\u075e\0\u0787"+
- "\0\u07b0\0\u07d9\0\u0802\0\u082b\0\u0854\0\u087d\0\u08a6\0\u08cf"+
+ "\0\u0148\0\u0171\0\u0148\0\u019a\0\u0148\0\u0148\0\u01c3\0\u01ec"+
+ "\0\u0148\0\u0215\0\u023e\0\u0148\0\u0148\0\u0267\0\u0290\0\u02b9"+
+ "\0\u0148\0\u02e2\0\u030b\0\u0334\0\u035d\0\u0386\0\u03af\0\u03d8"+
+ "\0\u0401\0\u042a\0\u0148\0\u0148\0\u019a\0\u0453\0\u047c\0\u04a5"+
+ "\0\u0148\0\u02e2\0\u04ce\0\u04f7\0\u0520\0\u0549\0\u0572\0\u059b"+
+ "\0\u05c4\0\u05ed\0\u0616\0\u063f\0\u0668\0\u0691\0\u06ba\0\u06e3"+
+ "\0\u070c\0\u0735\0\u0148\0\u019a\0\u075e\0\u0148\0\u0787\0\u07b0"+
+ "\0\u07d9\0\u0148\0\u0802\0\u082b\0\u0854\0\u087d\0\u08a6\0\u08cf"+
"\0\u08f8\0\u0921\0\u094a\0\u0973\0\u099c\0\u09c5\0\u09ee\0\u0a17"+
"\0\u0a40\0\u0a69\0\u0a92\0\u0abb\0\u0ae4\0\u0b0d\0\u0b36\0\u0b5f"+
"\0\u0b88\0\u0bb1\0\u0bda\0\u0c03\0\u0c2c\0\u0c55\0\u0c7e\0\u0ca7"+
"\0\u0cd0\0\u0cf9\0\u0d22\0\u0d4b\0\u0d74\0\u0d9d\0\u0dc6\0\u0def"+
"\0\u0e18\0\u0e41\0\u0e6a\0\u0e93\0\u0ebc\0\u0ee5\0\u0f0e\0\u0f37"+
"\0\u0f60\0\u0f89\0\u0fb2\0\u0fdb\0\u1004\0\u102d\0\u1056\0\u107f"+
- "\0\u10a8\0\u10d1\0\u10fa\0\u1123\0\u114c\0\u0148\0\u0148\0\u1175"+
- "\0\u119e\0\u11c7\0\u11f0\0\u1219\0\u1242\0\u126b\0\u1294\0\u12bd"+
- "\0\u12e6\0\u130f\0\u1338\0\u1361\0\u138a\0\u13b3\0\u13dc\0\u1405"+
- "\0\u142e\0\u0148\0\u1457\0\u1480\0\u14a9\0\u14d2\0\u14fb\0\u1524"+
- "\0\u154d\0\u1576\0\u159f\0\u15c8\0\u15f1\0\u161a\0\u1643\0\u166c"+
- "\0\u1695\0\u16be\0\u0148\0\u16e7\0\u1710\0\u1739\0\u1762\0\u178b"+
- "\0\u17b4\0\u17dd\0\u1806\0\u182f\0\u1858\0\u1881\0\u18aa\0\u18d3"+
- "\0\u18fc\0\u1925\0\u0148\0\u194e\0\u1977\0\u19a0\0\u19c9\0\u19f2"+
- "\0\u1a1b\0\u1a44\0\u1a6d\0\u1a96\0\u1abf\0\u1ae8\0\u1b11\0\u1b3a"+
- "\0\u1b63\0\u1b8c\0\u1bb5\0\u1bde\0\u1c07\0\u1c30\0\u0148\0\u1c59"+
- "\0\u0148\0\u1c82\0\u1cab";
+ "\0\u10a8\0\u10d1\0\u10fa\0\u1123\0\u114c\0\u1175\0\u119e\0\u11c7"+
+ "\0\u11f0\0\u1219\0\u1242\0\u126b\0\u1294\0\u12bd\0\u12e6\0\u130f"+
+ "\0\u1338\0\u1361\0\u138a\0\u13b3\0\u13dc\0\u1405\0\u142e\0\u1457"+
+ "\0\u1480\0\u14a9\0\u14d2\0\u14fb\0\u1524\0\u0148\0\u0148\0\u154d"+
+ "\0\u1576\0\u159f\0\u15c8\0\u15f1\0\u161a\0\u1643\0\u166c\0\u1695"+
+ "\0\u16be\0\u16e7\0\u1710\0\u1739\0\u1762\0\u178b\0\u17b4\0\u17dd"+
+ "\0\u1806\0\u182f\0\u01ec\0\u1858\0\u1881\0\u0148\0\u18aa\0\u18d3"+
+ "\0\u18fc\0\u1925\0\u194e\0\u1977\0\u19a0\0\u19c9\0\u19f2\0\u1a1b"+
+ "\0\u1a44\0\u1a6d\0\u1a96\0\u1abf\0\u1ae8\0\u1b11\0\u1b3a\0\u1b63"+
+ "\0\u1b8c\0\u1bb5\0\u01ec\0\u1bde\0\u0148\0\u1c07\0\u1c30\0\u1c59"+
+ "\0\u1c82\0\u1cab\0\u1cd4\0\u1cfd\0\u1d26\0\u1d4f\0\u1d78\0\u1da1"+
+ "\0\u1dca\0\u1df3\0\u1e1c\0\u1e45\0\u1e6e\0\u1e97\0\u1ec0\0\u1ee9"+
+ "\0\u0148\0\u1f12\0\u1f3b\0\u1f64\0\u1f8d\0\u1fb6\0\u1fdf\0\u2008"+
+ "\0\u2031\0\u205a\0\u2083\0\u20ac\0\u20d5\0\u20fe\0\u2127\0\u2150"+
+ "\0\u2179\0\u21a2\0\u21cb\0\u21f4\0\u221d\0\u2246\0\u226f\0\u2298"+
+ "\0\u22c1\0\u22ea\0\u2313\0\u233c\0\u2365\0\u0148\0\u238e\0\u23b7"+
+ "\0\u0148\0\u23e0\0\u2409\0\u2432";
private static int [] zzUnpackRowMap() {
- int [] result = new int[203];
+ int [] result = new int[252];
int offset = 0;
offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
return result;
@@ -145,76 +154,98 @@ class _GetTextLexer implements FlexLexer {
private static final String ZZ_TRANS_PACKED_0 =
"\1\11\1\12\2\13\1\14\1\15\1\16\1\17\1\20"+
- "\1\21\1\22\2\11\1\23\34\11\1\24\1\25\1\26"+
- "\1\14\1\15\1\16\1\17\1\11\1\27\1\30\1\31"+
- "\1\32\1\23\33\11\1\33\1\24\1\25\1\33\1\34"+
- "\44\33\1\35\1\24\1\25\1\35\1\36\44\35\1\37"+
- "\1\24\1\25\1\37\1\40\44\37\1\41\1\24\1\25"+
- "\1\41\1\42\44\41\1\11\1\24\1\25\1\13\1\14"+
- "\1\15\1\16\1\17\1\11\1\21\1\22\2\11\1\23"+
- "\1\43\1\44\1\45\1\46\4\11\1\47\1\50\1\11"+
- "\1\51\1\52\1\53\1\11\1\54\1\55\1\56\1\11"+
- "\1\57\1\60\1\11\1\61\1\62\2\11\1\63\1\11"+
- "\1\24\1\25\1\13\1\14\1\15\1\16\1\17\1\11"+
- "\1\21\1\22\1\64\1\11\1\23\33\11\53\0\1\13"+
- "\46\0\1\65\1\66\1\67\1\65\1\67\44\65\7\0"+
- "\1\17\52\0\1\70\55\0\1\71\34\0\1\25\46\0"+
- "\1\33\2\0\46\33\1\34\1\66\1\67\1\34\1\33"+
- "\44\34\1\35\2\0\46\35\1\36\1\66\1\67\1\36"+
- "\1\35\44\36\1\37\2\0\46\37\1\40\1\66\1\67"+
- "\1\40\1\37\44\40\1\41\2\0\46\41\1\42\1\66"+
- "\1\67\1\42\1\41\44\42\15\0\1\72\2\0\1\73"+
- "\22\0\1\74\25\0\1\75\12\0\1\75\55\0\1\76"+
- "\30\0\1\77\65\0\1\100\5\0\1\101\1\102\27\0"+
- "\1\103\57\0\1\104\65\0\1\105\31\0\1\106\40\0"+
- "\1\101\67\0\1\107\52\0\1\110\46\0\1\111\43\0"+
- "\1\112\41\0\1\113\51\0\1\114\45\0\1\115\31\0"+
- "\1\67\65\0\1\116\63\0\1\117\61\0\1\120\25\0"+
- "\1\74\63\0\1\121\44\0\1\74\42\0\1\122\55\0"+
- "\1\74\53\0\1\77\35\0\1\101\22\0\1\123\45\0"+
- "\1\124\57\0\1\74\37\0\1\125\54\0\1\126\52\0"+
- "\1\127\45\0\1\130\57\0\1\131\20\0\1\101\76\0"+
- "\1\74\31\0\1\132\12\0\1\133\26\0\1\134\1\0"+
- "\1\135\2\0\1\136\54\0\1\137\53\0\1\140\11\0"+
- "\1\141\43\0\1\142\54\0\1\143\36\0\1\144\36\0"+
- "\1\145\65\0\1\146\32\0\1\147\1\150\1\151\1\152"+
- "\4\0\1\153\1\154\2\0\1\155\2\0\1\156\1\0"+
- "\1\157\1\0\1\160\1\161\1\0\1\162\1\163\2\0"+
- "\1\164\20\0\1\74\23\0\1\165\22\0\1\166\64\0"+
- "\1\74\44\0\1\167\50\0\1\167\4\0\1\121\36\0"+
- "\1\170\50\0\1\171\53\0\1\172\53\0\1\173\52\0"+
- "\1\101\34\0\1\114\64\0\1\174\56\0\1\175\55\0"+
- "\1\101\50\0\1\176\41\0\1\177\30\0\1\200\2\0"+
- "\1\201\22\0\1\151\25\0\1\202\12\0\1\202\55\0"+
- "\1\203\30\0\1\204\65\0\1\205\5\0\1\206\1\207"+
- "\27\0\1\210\74\0\1\211\21\0\1\206\71\0\1\212"+
- "\46\0\1\213\43\0\1\214\41\0\1\215\51\0\1\216"+
- "\45\0\1\217\47\0\1\220\51\0\1\74\56\0\1\221"+
- "\52\0\1\222\41\0\1\223\53\0\1\224\44\0\1\225"+
- "\44\0\1\226\71\0\1\74\44\0\1\227\61\0\1\230"+
- "\25\0\1\151\63\0\1\231\44\0\1\151\42\0\1\232"+
- "\55\0\1\151\53\0\1\204\35\0\1\206\22\0\1\233"+
- "\54\0\1\151\45\0\1\234\45\0\1\235\57\0\1\236"+
- "\20\0\1\206\76\0\1\151\31\0\1\237\12\0\1\240"+
- "\31\0\1\241\57\0\1\242\41\0\1\243\55\0\1\244"+
- "\54\0\1\245\50\0\1\246\45\0\1\247\53\0\1\250"+
- "\11\0\1\251\43\0\1\252\54\0\1\253\36\0\1\254"+
- "\37\0\1\151\23\0\1\255\22\0\1\256\64\0\1\151"+
- "\44\0\1\257\50\0\1\257\4\0\1\231\42\0\1\260"+
- "\12\0\1\260\41\0\1\261\46\0\1\262\50\0\1\105"+
- "\42\0\1\263\56\0\1\264\52\0\1\206\34\0\1\216"+
- "\64\0\1\265\56\0\1\266\55\0\1\206\24\0\1\267"+
- "\51\0\1\151\56\0\1\270\47\0\1\271\54\0\1\77"+
- "\46\0\1\272\41\0\1\273\44\0\1\274\71\0\1\151"+
- "\33\0\1\275\57\0\1\276\52\0\1\277\47\0\1\300"+
- "\51\0\1\301\50\0\1\302\43\0\1\303\12\0\1\303"+
- "\41\0\1\304\35\0\1\305\64\0\1\306\45\0\1\211"+
- "\42\0\1\307\55\0\1\310\54\0\1\204\36\0\1\261"+
- "\57\0\1\311\53\0\1\312\34\0\1\313\52\0\1\304"+
- "\30\0";
+ "\1\21\4\11\1\22\7\20\1\11\10\20\1\11\11\20"+
+ "\1\11\1\23\1\24\1\25\1\14\1\15\1\16\1\17"+
+ "\2\11\1\26\1\27\1\30\1\31\1\32\32\11\1\33"+
+ "\1\23\1\24\1\33\1\34\44\33\1\35\1\23\1\24"+
+ "\1\35\1\36\44\35\1\37\1\23\1\24\1\37\1\40"+
+ "\44\37\1\41\1\23\1\24\1\41\1\42\44\41\1\43"+
+ "\1\23\1\24\1\44\1\45\2\43\1\46\1\47\1\43"+
+ "\1\50\1\51\2\43\1\52\1\53\1\54\1\55\1\56"+
+ "\4\43\1\57\1\60\1\43\1\61\1\62\1\63\1\43"+
+ "\1\64\1\43\1\65\1\66\1\67\1\70\1\43\1\71"+
+ "\1\72\3\43\1\23\1\24\1\44\1\45\2\43\1\46"+
+ "\2\43\1\50\1\51\1\43\1\73\1\52\32\43\53\0"+
+ "\1\13\46\0\1\74\1\75\1\76\1\74\1\76\44\74"+
+ "\7\0\1\17\51\0\1\20\5\0\10\20\1\0\10\20"+
+ "\1\0\11\20\10\0\1\20\5\0\1\20\1\77\6\20"+
+ "\1\0\10\20\1\0\11\20\2\0\1\24\46\0\1\26"+
+ "\2\0\46\26\1\27\2\0\46\27\1\30\2\0\46\30"+
+ "\17\0\1\100\31\0\1\33\2\0\46\33\1\34\1\75"+
+ "\1\76\1\34\1\33\44\34\1\35\2\0\46\35\1\36"+
+ "\1\75\1\76\1\36\1\35\44\36\1\37\2\0\46\37"+
+ "\1\40\1\75\1\76\1\40\1\37\44\40\1\41\2\0"+
+ "\46\41\1\42\1\75\1\76\1\42\1\41\44\42\7\0"+
+ "\1\46\63\0\1\101\40\0\1\102\54\0\1\103\2\0"+
+ "\1\104\22\0\1\105\25\0\1\106\12\0\1\106\33\0"+
+ "\1\107\17\0\1\110\32\0\1\111\65\0\1\112\5\0"+
+ "\1\113\1\114\27\0\1\115\57\0\1\116\65\0\1\117"+
+ "\31\0\1\120\40\0\1\113\71\0\1\121\46\0\1\122"+
+ "\50\0\1\123\43\0\1\124\45\0\1\125\45\0\1\126"+
+ "\25\0\1\76\56\0\1\20\5\0\2\20\1\127\5\20"+
+ "\1\0\10\20\1\0\11\20\20\0\1\130\67\0\1\131"+
+ "\44\0\1\132\61\0\1\133\43\0\1\110\32\0\1\134"+
+ "\73\0\1\135\40\0\1\136\44\0\1\105\42\0\1\137"+
+ "\55\0\1\105\53\0\1\140\35\0\1\113\22\0\1\141"+
+ "\47\0\1\142\55\0\1\105\37\0\1\143\56\0\1\144"+
+ "\44\0\1\145\51\0\1\146\57\0\1\147\25\0\1\150"+
+ "\71\0\1\105\13\0\1\20\5\0\1\20\1\151\1\20"+
+ "\1\152\2\20\1\153\1\20\1\0\10\20\1\0\11\20"+
+ "\17\0\1\154\1\0\1\155\2\0\1\156\53\0\1\157"+
+ "\4\0\1\136\44\0\1\160\65\0\1\161\42\0\1\162"+
+ "\44\0\1\163\55\0\1\164\54\0\1\165\34\0\1\166"+
+ "\52\0\1\167\36\0\1\170\65\0\1\171\34\0\1\105"+
+ "\23\0\1\172\13\0\1\173\6\0\1\174\1\175\1\176"+
+ "\1\177\4\0\1\200\1\201\2\0\1\202\2\0\1\203"+
+ "\1\0\1\204\1\0\1\205\1\206\1\0\1\207\1\210"+
+ "\21\0\1\211\64\0\1\105\34\0\1\113\41\0\1\20"+
+ "\5\0\4\20\1\212\3\20\1\0\10\20\1\0\11\20"+
+ "\10\0\1\20\5\0\4\20\1\213\3\20\1\0\10\20"+
+ "\1\0\11\20\10\0\1\20\5\0\7\20\1\214\1\0"+
+ "\10\20\1\0\11\20\22\0\1\215\50\0\1\216\53\0"+
+ "\1\217\53\0\1\220\50\0\1\221\36\0\1\126\56\0"+
+ "\1\222\56\0\1\113\50\0\1\223\56\0\1\224\47\0"+
+ "\1\225\56\0\1\113\50\0\1\226\41\0\1\227\33\0"+
+ "\1\230\51\0\1\231\44\0\1\232\2\0\1\233\22\0"+
+ "\1\234\25\0\1\235\12\0\1\235\33\0\1\236\17\0"+
+ "\1\237\32\0\1\240\65\0\1\241\5\0\1\242\1\243"+
+ "\27\0\1\244\74\0\1\245\21\0\1\242\71\0\1\246"+
+ "\46\0\1\247\43\0\1\250\45\0\1\251\45\0\1\252"+
+ "\45\0\1\105\36\0\1\20\5\0\10\20\1\0\3\20"+
+ "\1\253\4\20\1\0\11\20\10\0\1\20\5\0\5\20"+
+ "\1\254\2\20\1\0\10\20\1\0\11\20\10\0\1\20"+
+ "\5\0\10\20\1\255\10\20\1\0\11\20\32\0\1\256"+
+ "\41\0\1\257\53\0\1\255\53\0\1\260\41\0\1\261"+
+ "\67\0\1\262\25\0\1\263\73\0\1\105\51\0\1\264"+
+ "\30\0\1\265\65\0\1\266\44\0\1\267\61\0\1\270"+
+ "\43\0\1\237\32\0\1\271\73\0\1\272\40\0\1\273"+
+ "\44\0\1\234\42\0\1\274\55\0\1\234\53\0\1\275"+
+ "\35\0\1\242\22\0\1\276\54\0\1\234\45\0\1\277"+
+ "\45\0\1\300\57\0\1\301\25\0\1\302\71\0\1\234"+
+ "\13\0\1\20\5\0\4\20\1\303\3\20\1\0\10\20"+
+ "\1\0\11\20\27\0\1\304\43\0\1\305\60\0\1\306"+
+ "\51\0\1\307\37\0\1\310\61\0\1\311\47\0\1\312"+
+ "\55\0\1\313\40\0\1\314\4\0\1\273\44\0\1\315"+
+ "\65\0\1\316\42\0\1\317\44\0\1\320\55\0\1\321"+
+ "\54\0\1\322\34\0\1\323\52\0\1\324\37\0\1\234"+
+ "\23\0\1\325\22\0\1\326\64\0\1\234\34\0\1\242"+
+ "\61\0\1\327\53\0\1\111\45\0\1\117\65\0\1\330"+
+ "\25\0\1\331\61\0\1\332\44\0\1\333\51\0\1\334"+
+ "\50\0\1\335\36\0\1\252\56\0\1\336\56\0\1\242"+
+ "\50\0\1\337\56\0\1\340\47\0\1\341\56\0\1\242"+
+ "\24\0\1\342\51\0\1\234\57\0\1\343\51\0\1\344"+
+ "\37\0\1\126\62\0\1\345\46\0\1\346\41\0\1\347"+
+ "\67\0\1\350\25\0\1\351\73\0\1\234\51\0\1\352"+
+ "\30\0\1\353\60\0\1\354\57\0\1\306\26\0\1\355"+
+ "\63\0\1\356\51\0\1\357\37\0\1\360\61\0\1\361"+
+ "\47\0\1\362\55\0\1\363\44\0\1\364\36\0\1\306"+
+ "\62\0\1\240\45\0\1\245\65\0\1\365\25\0\1\366"+
+ "\61\0\1\367\44\0\1\370\51\0\1\371\52\0\1\372"+
+ "\37\0\1\252\62\0\1\373\56\0\1\356\26\0\1\374"+
+ "\52\0\1\356\27\0";
private static int [] zzUnpackTrans() {
- int [] result = new int[7380];
+ int [] result = new int[9307];
int offset = 0;
offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
return result;
@@ -255,14 +286,16 @@ class _GetTextLexer implements FlexLexer {
private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
private static final String ZZ_ATTRIBUTE_PACKED_0 =
- "\10\1\1\11\1\1\1\11\1\1\2\11\1\1\1\11"+
- "\1\1\1\11\2\1\2\11\1\1\3\11\31\1\1\11"+
- "\1\0\1\1\2\11\101\0\1\1\3\0\2\11\22\0"+
- "\1\11\20\0\1\11\17\0\1\11\23\0\1\11\1\0"+
- "\1\11\2\0";
+ "\10\1\1\11\1\1\1\11\1\1\2\11\2\1\1\11"+
+ "\2\1\2\11\3\1\1\11\11\1\2\11\4\1\1\11"+
+ "\21\1\1\11\1\0\1\1\1\11\1\1\2\0\1\11"+
+ "\24\0\1\1\21\0\3\1\36\0\3\1\2\0\1\1"+
+ "\6\0\2\11\23\0\2\1\1\0\1\11\24\0\1\1"+
+ "\1\0\1\11\23\0\1\11\34\0\1\11\2\0\1\11"+
+ "\3\0";
private static int [] zzUnpackAttribute() {
- int [] result = new int[203];
+ int [] result = new int[252];
int offset = 0;
offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
return result;
@@ -574,118 +607,138 @@ class _GetTextLexer implements FlexLexer {
zzMarkedPos = zzMarkedPosL;
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 2:
+ case 3:
{ return GetTextTokenTypes.COMMENT;
}
- case 29: break;
- case 27:
+ case 34: break;
+ case 32:
{ yybegin(FLAG_DEL); return GetTextTokenTypes.NO_FORMAT_FLAG;
}
- case 30: break;
- case 25:
+ case 35: break;
+ case 30:
{ return GetTextTokenTypes.MSGCTXT;
}
- case 31: break;
- case 14:
- { yybegin(EXTR_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;
- }
- case 32: break;
- case 7:
- { return GetTextTokenTypes.WHITE_SPACE;
- }
- case 33: break;
- case 8:
- { return GetTextTokenTypes.LBRACE;
- }
- case 34: break;
- case 10:
- { yybegin(START_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;
- }
- case 35: break;
- case 26:
- { yybegin(FLAG_DEL); return GetTextTokenTypes.FORMAT_FLAG;
- }
case 36: break;
- case 6:
- { return GetTextTokenTypes.BAD_CHARACTER;
+ case 10:
+ { return GetTextTokenTypes.QUOTE;
}
case 37: break;
case 9:
- { return GetTextTokenTypes.RBRACE;
+ { return GetTextTokenTypes.WHITE_SPACE;
}
case 38: break;
- case 12:
- { yybegin(YYINITIAL); return GetTextTokenTypes.WHITE_SPACE;
+ case 11:
+ { return GetTextTokenTypes.LBRACE;
}
case 39: break;
- case 16:
- { yybegin(FLAG_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;
+ case 18:
+ { yybegin(PREVIOUS_COMMENT); return GetTextTokenTypes.PREVIOUS_COMMENT;
}
case 40: break;
- case 17:
- { yybegin(PREVIOUS_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;
+ case 13:
+ { yybegin(START_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;
}
case 41: break;
- case 20:
- { return GetTextTokenTypes.DOTS;
+ case 31:
+ { yybegin(FLAG_DEL); return GetTextTokenTypes.FORMAT_FLAG;
}
case 42: break;
- case 4:
- { return GetTextTokenTypes.REFERENCE;
+ case 8:
+ { return GetTextTokenTypes.BAD_CHARACTER;
}
case 43: break;
- case 24:
- { return GetTextTokenTypes.MSGSTR;
+ case 21:
+ { return GetTextTokenTypes.FLAG_DELIVERY;
}
case 44: break;
- case 19:
- { return GetTextTokenTypes.STRING;
+ case 12:
+ { return GetTextTokenTypes.RBRACE;
}
case 45: break;
- case 15:
- { yybegin(REFERENCE_COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;
+ case 14:
+ { yybegin(YYINITIAL); return GetTextTokenTypes.WHITE_SPACE;
}
case 46: break;
- case 22:
- { yybegin(FLAG_DEL); return GetTextTokenTypes.RANGE_FLAG;
+ case 25:
+ { return GetTextTokenTypes.DOTS;
}
case 47: break;
- case 11:
- { return GetTextTokenTypes.COLON;
+ case 5:
+ { return GetTextTokenTypes.REFERENCE;
}
case 48: break;
- case 1:
- { return GetTextTokenTypes.NUMBER;
+ case 29:
+ { return GetTextTokenTypes.MSGSTR;
}
case 49: break;
- case 18:
- { yybegin(FLAG_COMMENT); return GetTextTokenTypes.FLAG_DELIVERY;
+ case 24:
+ { return GetTextTokenTypes.STRING;
}
case 50: break;
- case 3:
- { return GetTextTokenTypes.EXTR_COMMENT;
+ case 7:
+ { return GetTextTokenTypes.RANGE_NUMBER;
}
case 51: break;
- case 21:
- { return GetTextTokenTypes.MSGID;
+ case 27:
+ { yybegin(FLAG_DEL); return GetTextTokenTypes.RANGE_FLAG;
}
case 52: break;
- case 5:
- { return GetTextTokenTypes.PREVIOUS_COMMENT;
+ case 22:
+ { return GetTextTokenTypes.COLON;
}
case 53: break;
- case 28:
- { return GetTextTokenTypes.MSGID_PLURAL;
+ case 2:
+ { return GetTextTokenTypes.NUMBER;
}
case 54: break;
- case 23:
- { yybegin(FLAG_DEL); return GetTextTokenTypes.FUZZY_FLAG;
+ case 20:
+ { return GetTextTokenTypes.BAD_FLAG_COMMENT;
}
case 55: break;
- case 13:
- { yybegin(COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;
+ case 23:
+ { yybegin(FLAG_COMMENT); return GetTextTokenTypes.FLAG_DELIVERY;
}
case 56: break;
+ case 4:
+ { return GetTextTokenTypes.EXTR_COMMENT;
+ }
+ case 57: break;
+ case 26:
+ { return GetTextTokenTypes.MSGID;
+ }
+ case 58: break;
+ case 17:
+ { yybegin(REFERENCE_COMMENT); return GetTextTokenTypes.REFERENCE;
+ }
+ case 59: break;
+ case 6:
+ { return GetTextTokenTypes.PREVIOUS_COMMENT;
+ }
+ case 60: break;
+ case 19:
+ { yybegin(FLAG_COMMENT); return GetTextTokenTypes.FLAG_COMMENT;
+ }
+ case 61: break;
+ case 33:
+ { return GetTextTokenTypes.MSGID_PLURAL;
+ }
+ case 62: break;
+ case 28:
+ { yybegin(FLAG_DEL); return GetTextTokenTypes.FUZZY_FLAG;
+ }
+ case 63: break;
+ case 15:
+ { yybegin(COMMENT); return GetTextTokenTypes.COMMENT_SYMBOLS;
+ }
+ case 64: break;
+ case 1:
+ { return GetTextTokenTypes.COMMAND;
+ }
+ case 65: break;
+ case 16:
+ { yybegin(EXTR_COMMENT); return GetTextTokenTypes.EXTR_COMMENT;
+ }
+ case 66: break;
default:
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
zzAtEOF = true;
diff --git a/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextBraceMatcher.java b/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextBraceMatcher.java
new file mode 100644
index 000000000000..825b89ed451c
--- /dev/null
+++ b/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextBraceMatcher.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2000-2012 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.jetbrains.gettext.completion;
+
+import com.intellij.lang.BracePair;
+import com.intellij.lang.PairedBraceMatcher;
+import com.intellij.psi.PsiFile;
+import com.intellij.psi.tree.IElementType;
+import com.jetbrains.gettext.GetTextTokenTypes;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * @author Svetlana.Zemlyanskaya
+ */
+public class GetTextBraceMatcher implements PairedBraceMatcher {
+ private static final BracePair[] PAIRS = new BracePair[]{
+ new BracePair(GetTextTokenTypes.LBRACE, GetTextTokenTypes.RBRACE, false)
+ };
+
+ public BracePair[] getPairs() {
+ return PAIRS;
+ }
+
+ public boolean isPairedBracesAllowedBeforeType(@NotNull final IElementType lbraceType, @Nullable final IElementType tokenType) {
+ return true;
+ }
+
+ public int getCodeConstructStart(final PsiFile file, int openingBraceOffset) {
+ return openingBraceOffset;
+ }
+}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextCommenter.java b/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextCommenter.java
new file mode 100644
index 000000000000..d868db1802fd
--- /dev/null
+++ b/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextCommenter.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2000-2012 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.jetbrains.gettext.completion;
+
+import com.intellij.lang.Commenter;
+
+/**
+ * @author Svetlana.Zemlyanskaya
+ */
+public class GetTextCommenter implements Commenter {
+ public String getLineCommentPrefix() {
+ return "# ";
+ }
+
+ public String getBlockCommentPrefix() {
+ return null;
+ }
+
+ public String getBlockCommentSuffix() {
+ return null;
+ }
+
+ public String getCommentedBlockCommentPrefix() {
+ return null;
+ }
+
+ public String getCommentedBlockCommentSuffix() {
+ return null;
+ }
+}
+
diff --git a/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextCompletitionContributor.java b/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextCompletionContributor.java
similarity index 56%
rename from plugins/gettext/src/com/jetbrains/gettext/completion/GetTextCompletitionContributor.java
rename to plugins/gettext/src/com/jetbrains/gettext/completion/GetTextCompletionContributor.java
index de526dcbcb9b..209585726943 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextCompletitionContributor.java
+++ b/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextCompletionContributor.java
@@ -3,9 +3,11 @@ package com.jetbrains.gettext.completion;
import com.intellij.codeInsight.completion.*;
import com.intellij.codeInsight.lookup.LookupElementBuilder;
import com.intellij.psi.PsiElement;
+import com.intellij.psi.PsiWhiteSpace;
import com.intellij.util.ProcessingContext;
import com.jetbrains.gettext.GetTextLanguage;
import com.jetbrains.gettext.GetTextTokenTypes;
+import com.jetbrains.gettext.lang.GetTextFlags;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
@@ -16,52 +18,28 @@ import static com.intellij.patterns.PlatformPatterns.psiElement;
/**
* @author Svetlana.Zemlyanskaya
*/
-public class GetTextCompletitionContributor extends CompletionContributor {
+public class GetTextCompletionContributor extends CompletionContributor {
private final static String[] KEYWORDS = {
"msgid",
"msgstr",
"msgctxt",
- "msgid_plural",
- "fuzzy",
- "c-format"
+ "msgid_plural"
};
- //private final static String[] BUILT_IN_FILTERS = {
- // "date",
- // "format",
- // "replace",
- // "url_encode",
- // "json_encode",
- // "title",
- // "capitalize",
- // "upper",
- // "lower",
- // "striptags",
- // "join",
- // "reverse",
- // "length",
- // "sort",
- // "default",
- // "keys",
- // "escape",
- // "raw",
- // "merge"
- //};
-
private final static List KEYWORD_LOOKUPS = new ArrayList();
- //private final static List BUILT_IN_FILTER_LOOKUPS = new ArrayList();
+ private final static List FLAGS_LOOKUPS = new ArrayList();
static {
for (String keyword : KEYWORDS) {
KEYWORD_LOOKUPS.add(LookupElementBuilder.create(keyword));
}
- //for (String filter : BUILT_IN_FILTERS) {
- // BUILT_IN_FILTER_LOOKUPS.add(LookupElementBuilder.create(filter));
- //}
+ for (String flag : GetTextFlags.getAlFlags()) {
+ FLAGS_LOOKUPS.add(LookupElementBuilder.create(flag));
+ }
}
- public GetTextCompletitionContributor() {
+ public GetTextCompletionContributor() {
extend(CompletionType.BASIC, psiElement().withParent(psiElement().withLanguage(GetTextLanguage.INSTANCE)),
new GetTextKeywordCompletionContributor());
}
@@ -73,17 +51,18 @@ public class GetTextCompletitionContributor extends CompletionContributor {
ProcessingContext context,
@NotNull CompletionResultSet result) {
final PsiElement currElement = parameters.getPosition().getOriginalElement();
- if (currElement.getNode().getElementType() == GetTextTokenTypes.BAD_CHARACTER) {
+ PsiElement prevElement = currElement.getPrevSibling();
+
+ if (currElement.getNode().getElementType() == GetTextTokenTypes.COMMAND || prevElement instanceof PsiWhiteSpace) {
for (LookupElementBuilder builder : KEYWORD_LOOKUPS) result.addElement(builder);
result.stopHere();
- //return;
+ return;
+ }
+
+ if (prevElement != null && GetTextTokenTypes.FLAG_LINE.contains(prevElement.getNode().getElementType())) {
+ for (LookupElementBuilder builder : FLAGS_LOOKUPS) result.addElement(builder);
+ result.stopHere();
}
- //PsiElement prevElement = currElement.getPrevSibling();
- //if (prevElement != null && prevElement instanceof PsiWhiteSpace) prevElement = prevElement.getPrevSibling();
- //if (prevElement != null && prevElement.getNode().getElementType() == TwigTokenTypes.FILTER) {
- // for (LookupElementBuilder builder : BUILT_IN_FILTER_LOOKUPS) result.addElement(builder);
- // result.stopHere();
- //}
}
}
}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextQuoteHandler.java b/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextQuoteHandler.java
new file mode 100644
index 000000000000..32bf2dbbb58e
--- /dev/null
+++ b/plugins/gettext/src/com/jetbrains/gettext/completion/GetTextQuoteHandler.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2000-2012 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.jetbrains.gettext.completion;
+
+import com.intellij.codeInsight.editorActions.SimpleTokenSetQuoteHandler;
+import com.jetbrains.gettext.GetTextTokenTypes;
+
+/**
+ * @author Svetlana.Zemlyanskaya
+ */
+public class GetTextQuoteHandler extends SimpleTokenSetQuoteHandler {
+ public GetTextQuoteHandler() {
+ super(GetTextTokenTypes.QUOTE);
+ }
+}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/highlighter/GetTextHighlighterData.java b/plugins/gettext/src/com/jetbrains/gettext/highlighter/GetTextHighlighterData.java
index 1147e110535b..e7965e2554d0 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/highlighter/GetTextHighlighterData.java
+++ b/plugins/gettext/src/com/jetbrains/gettext/highlighter/GetTextHighlighterData.java
@@ -1,6 +1,5 @@
package com.jetbrains.gettext.highlighter;
-import com.intellij.openapi.editor.HighlighterColors;
import com.intellij.openapi.editor.SyntaxHighlighterColors;
import com.intellij.openapi.editor.colors.TextAttributesKey;
@@ -25,9 +24,9 @@ public class GetTextHighlighterData {
public static final TextAttributesKey FLAG =
TextAttributesKey.createTextAttributesKey(FLAG_ID, SyntaxHighlighterColors.DOC_COMMENT_TAG.getDefaultAttributes().clone());
- public static final String TRANSLATED_NUMBER_ID = "GET_TEXT_TRANSLATED_NUMBER";
- public static final TextAttributesKey TRANSLATED_NUMBER =
- TextAttributesKey.createTextAttributesKey(TRANSLATED_NUMBER_ID, SyntaxHighlighterColors.NUMBER.getDefaultAttributes().clone());
+ public static final String NUMBER_ID = "GET_TEXT_TRANSLATED_NUMBER";
+ public static final TextAttributesKey NUMBER =
+ TextAttributesKey.createTextAttributesKey(NUMBER_ID, SyntaxHighlighterColors.NUMBER.getDefaultAttributes().clone());
public static final String BRACES_ID = "GET_TEXT_BRACES";
public static final TextAttributesKey BRACES =
@@ -36,7 +35,4 @@ public class GetTextHighlighterData {
public static final String DOTS_ID = "GET_TEXT_DOTS";
public static final TextAttributesKey DOTS =
TextAttributesKey.createTextAttributesKey(DOTS_ID, SyntaxHighlighterColors.DOT.getDefaultAttributes().clone());
-
- public static final TextAttributesKey BAD_CHARACTER =
- TextAttributesKey.createTextAttributesKey("TS_BAD_CHARACTER", HighlighterColors.BAD_CHARACTER.getDefaultAttributes());
}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/highlighter/GetTextSyntaxHighlighter.java b/plugins/gettext/src/com/jetbrains/gettext/highlighter/GetTextSyntaxHighlighter.java
index 7719be7df13b..974120b311f2 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/highlighter/GetTextSyntaxHighlighter.java
+++ b/plugins/gettext/src/com/jetbrains/gettext/highlighter/GetTextSyntaxHighlighter.java
@@ -3,7 +3,6 @@ package com.jetbrains.gettext.highlighter;
import com.intellij.lexer.Lexer;
import com.intellij.openapi.editor.colors.TextAttributesKey;
import com.intellij.openapi.fileTypes.SyntaxHighlighterBase;
-import com.intellij.psi.TokenType;
import com.intellij.psi.tree.IElementType;
import com.jetbrains.gettext.GetTextLexer;
import com.jetbrains.gettext.GetTextTokenTypes;
@@ -34,9 +33,9 @@ public class GetTextSyntaxHighlighter extends SyntaxHighlighterBase {
fillMap(keys1, GetTextTokenTypes.KEYWORDS, GetTextHighlighterData.KEYWORD);
fillMap(keys1, GetTextTokenTypes.STRING_LITERALS, GetTextHighlighterData.STRING);
fillMap(keys1, GetTextTokenTypes.BRACES, GetTextHighlighterData.BRACES);
- keys1.put(GetTextTokenTypes.NUMBER, GetTextHighlighterData.TRANSLATED_NUMBER);
+ fillMap(keys1, GetTextTokenTypes.NUMBERS, GetTextHighlighterData.NUMBER);
keys1.put(GetTextTokenTypes.DOTS, GetTextHighlighterData.DOTS);
- keys1.put(TokenType.BAD_CHARACTER, GetTextHighlighterData.BAD_CHARACTER);
+ keys1.put(GetTextTokenTypes.BAD_CHARACTER, GetTextHighlighterData.KEYWORD);
}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/lang/CommandFormatException.java b/plugins/gettext/src/com/jetbrains/gettext/lang/CommandFormatException.java
deleted file mode 100644
index 212465d09c2e..000000000000
--- a/plugins/gettext/src/com/jetbrains/gettext/lang/CommandFormatException.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.jetbrains.gettext.lang;
-
-/**
- * @author Svetlana.Zemlyanskaya
- */
-public class CommandFormatException extends Exception {
-
- public CommandFormatException(String message) {
- super(message);
- }
-}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/lang/GetTextFlags.java b/plugins/gettext/src/com/jetbrains/gettext/lang/GetTextFlags.java
new file mode 100644
index 000000000000..0994018079f2
--- /dev/null
+++ b/plugins/gettext/src/com/jetbrains/gettext/lang/GetTextFlags.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2000-2012 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.jetbrains.gettext.lang;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author Svetlana.Zemlyanskaya
+ */
+public enum GetTextFlags {
+
+ FUZZY("fuzzy", false),
+ RANGE("range", false),
+ C("c"),
+ OBJC("objc"),
+ SH("sh"),
+ PYTHON("python"),
+ LISP("lisp"),
+ ELISP("elisp"),
+ LIBREP("librep"),
+ SCHEME("scheme"),
+ SMALLTALK("smalltalk"),
+ JAVA("java"),
+ CSHARP("csharp"),
+ AWK("awk"),
+ YCP("ycp"),
+ TCL("tcl"),
+ PERL("perl-brace"),
+ PHP("php"),
+ GCC("gcc-internal"),
+ GFC("gfc-internal"),
+ QT("qt"),
+ KDE("kde"),
+ BOOST("boost"),
+ PASCAL("object-pascal"),
+ QT_PURAL("qt-plural");
+
+
+ private String flagContent;
+ private boolean isFormatFlag;
+
+ GetTextFlags(String flagContent, boolean formatFlag) {
+ this.flagContent = flagContent;
+ isFormatFlag = formatFlag;
+ }
+
+ GetTextFlags(String flagContent) {
+ this.flagContent = flagContent;
+ this.isFormatFlag = true;
+ }
+
+ public static List getAlFlags() {
+ List flags = new ArrayList();
+ for (GetTextFlags flag : GetTextFlags.values()) {
+ if (flag.isFormatFlag) {
+ flags.add(constructFormatFlag(flag.flagContent));
+ flags.add(constructNoFormatFlag(flag.flagContent));
+ } else {
+ flags.add(flag.flagContent);
+ }
+ }
+ return flags;
+ }
+
+ private static String constructFormatFlag(String formatContent) {
+ return formatContent + "-format";
+ }
+
+ private static String constructNoFormatFlag(String formatContent) {
+ return "no-" + constructFormatFlag(formatContent);
+ }
+}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/lang/MsgCommand.java b/plugins/gettext/src/com/jetbrains/gettext/lang/MsgCommand.java
index b85fd9d6dcec..c43876be33c6 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/lang/MsgCommand.java
+++ b/plugins/gettext/src/com/jetbrains/gettext/lang/MsgCommand.java
@@ -13,16 +13,14 @@ public abstract class MsgCommand {
public abstract IElementType getCompositeElement();
- public void parse(PsiBuilder builder) throws CommandFormatException {
+ public boolean parse(PsiBuilder builder) {
builder.advanceLexer();
int count = 0;
while (builder.getTokenType() == GetTextTokenTypes.STRING) {
checkString(builder);
count++;
}
- if (count == 0) {
- throw new CommandFormatException("String for " + getName() + " is not specified");
- }
+ return count > 0;
}
private static void checkString(PsiBuilder builder) {
@@ -54,15 +52,8 @@ public abstract class MsgCommand {
exists = true;
return true;
}
- else if (isMultiple()) {
- return true;
- }
- return false;
+ return isMultiple();
}
public abstract String getName();
-
- public int getCount() {
- return exists ? 1 : 0;
- }
}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/lang/MsgCommandContainer.java b/plugins/gettext/src/com/jetbrains/gettext/lang/MsgCommandContainer.java
index 8305aa91bd90..a0f24f79c1b8 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/lang/MsgCommandContainer.java
+++ b/plugins/gettext/src/com/jetbrains/gettext/lang/MsgCommandContainer.java
@@ -45,17 +45,16 @@ public class MsgCommandContainer {
PsiBuilder.Marker marker = builder.mark();
try {
MsgCommand command = getCommand(builder.getTokenType());
- command.parse(builder);
- //if (result) {
+ boolean result = command.parse(builder);
+ if (result) {
marker.done(command.getCompositeElement());
- //}
- //else {
- // marker.error("String for " + command.getName() + " is not specified");
- //}
- //return result;
- return true;
+ }
+ else {
+ marker.error("String for " + command.getName() + " is not specified");
+ }
+ return result;
}
- catch (Exception e) {
+ catch (UnknownCommandException e) {
marker.error(e.getMessage());
builder.advanceLexer();
return false;
diff --git a/plugins/gettext/src/com/jetbrains/gettext/lang/MsgstrCommand.java b/plugins/gettext/src/com/jetbrains/gettext/lang/MsgstrCommand.java
index 15afdcb08002..162313381fcf 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/lang/MsgstrCommand.java
+++ b/plugins/gettext/src/com/jetbrains/gettext/lang/MsgstrCommand.java
@@ -10,10 +10,7 @@ import com.jetbrains.gettext.GetTextTokenTypes;
*/
public class MsgstrCommand extends MsgCommand {
- private int count;
-
public MsgstrCommand() {
- count = 0;
}
@Override
@@ -22,29 +19,35 @@ public class MsgstrCommand extends MsgCommand {
}
@Override
- public void parse(PsiBuilder builder) throws CommandFormatException {
- try {
- super.parse(builder);
- }
- catch (CommandFormatException e) {
- parseBraces(builder);
- }
- //return super.parse(builder) || parseBraces(builder);
+ public boolean parse(PsiBuilder builder) {
+ return super.parse(builder) || parseBraces(builder);
}
- private boolean parseBraces(PsiBuilder builder) throws CommandFormatException {
+ private boolean parseBraces(PsiBuilder builder) {
if (builder.getTokenType() == GetTextTokenTypes.LBRACE) {
builder.advanceLexer();
if (builder.getTokenType() == GetTextTokenTypes.NUMBER) {
- builder.advanceLexer();
+ if (!checkNumber(builder)) {
+ PsiBuilder.Marker marker = builder.mark();
+ builder.advanceLexer();
+ marker.error("Wrong number format");
+ }
+ else {
+ builder.advanceLexer();
+ }
if (builder.getTokenType() == GetTextTokenTypes.RBRACE) {
- super.parse(builder);
+ return super.parse(builder);
}
}
}
return false;
}
+ private static boolean checkNumber(PsiBuilder builder) {
+ String number = builder.getTokenText();
+ return number != null && !number.isEmpty() && !(number.charAt(0) == '0' && !number.equals("0"));
+ }
+
@Override
public boolean isNecessary() {
return true;
@@ -59,18 +62,4 @@ public class MsgstrCommand extends MsgCommand {
public String getName() {
return "msgstr";
}
-
- @Override
- public int getCount() {
- return count;
- }
-
- @Override
- public boolean register() {
- boolean result = super.register();
- if (result) {
- count++;
- }
- return result;
- }
}
diff --git a/plugins/gettext/src/com/jetbrains/gettext/parser/GetTextParser.java b/plugins/gettext/src/com/jetbrains/gettext/parser/GetTextParser.java
index c0b9a0242118..cb0e1e31a9e3 100644
--- a/plugins/gettext/src/com/jetbrains/gettext/parser/GetTextParser.java
+++ b/plugins/gettext/src/com/jetbrains/gettext/parser/GetTextParser.java
@@ -36,7 +36,7 @@ public class GetTextParser implements PsiParser {
private static void parseCommentHeader(PsiBuilder builder) {
PsiBuilder.Marker marker = builder.mark();
while (GetTextTokenTypes.COMMENTS.contains(builder.getTokenType()) ||
- GetTextTokenTypes.FLAGS.contains(builder.getTokenType())) {
+ GetTextTokenTypes.FLAG_LINE.contains(builder.getTokenType())) {
builder.advanceLexer();
}
marker.done(GetTextCompositeElementTypes.HEADER);
@@ -48,8 +48,8 @@ public class GetTextParser implements PsiParser {
while (!canTerminate(builder, container)) {
try {
IElementType token = builder.getTokenType();
- if (container.parse(builder)) {
- container.addCommand(token);
+ if (container.parse(builder) && !container.addCommand(token)) {
+ break;
}
}
catch (UnknownCommandException e) {
diff --git a/plugins/gettext/test/com/jetbrains/gettext/GetTextLexerTest.java b/plugins/gettext/test/com/jetbrains/gettext/GetTextLexerTest.java
index 666bbcd73d34..27c7eb608718 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/GetTextLexerTest.java
+++ b/plugins/gettext/test/com/jetbrains/gettext/GetTextLexerTest.java
@@ -35,10 +35,9 @@ public class GetTextLexerTest extends UsefulTestCase {
}
private static void doTest(String fileName) throws IOException {
- final String fullPath = GetTextUtils.getFullPath(fileName);
final Lexer lexer = new GetTextLexer();
- final String testText = getFileText(fullPath + ".po");
- final String expected = fullPath + ".txt";
+ final String testText = getFileText(GetTextUtils.getFullSourcePath(fileName));
+ final String expected = GetTextUtils.getFullLexerPath(fileName);
doFileLexerTest(lexer, testText, expected);
}
@@ -53,7 +52,7 @@ public class GetTextLexerTest extends UsefulTestCase {
}
public void testLexer() throws Throwable {
- doTest("string");
+ doTest("command_format");
}
public void testAllFiles() throws Throwable {
diff --git a/plugins/gettext/test/com/jetbrains/gettext/GetTextParserTest.java b/plugins/gettext/test/com/jetbrains/gettext/GetTextParserTest.java
index 6e574abfe2d7..0432a15f85cc 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/GetTextParserTest.java
+++ b/plugins/gettext/test/com/jetbrains/gettext/GetTextParserTest.java
@@ -16,7 +16,7 @@ import java.io.IOException;
public class GetTextParserTest extends LightCodeInsightFixtureTestCase {
private void doTest(String fileName) throws IOException {
- final String filePath = GetTextUtils.getFullPath(fileName) + ".po";
+ final String filePath = GetTextUtils.getFullSourcePath(fileName);
try {
final String fileText = FileUtil.loadFile(new File(filePath));
@@ -30,17 +30,16 @@ public class GetTextParserTest extends LightCodeInsightFixtureTestCase {
private void doTest(@NonNls final String code, final String fileName) {
final PsiFile psiFile = createLightFile(fileName, GetTextLanguage.INSTANCE, code);
final String tree = DebugUtil.psiTreeToString(psiFile, false);
- final String path = GetTextUtils.getFullParserResultPath(fileName);
+ final String path = GetTextUtils.getFullParserPath(fileName);
assertSameLinesWithFile(path, tree);
}
public void testSimple() throws IOException {
- doTest("string");
+ doTest("command");
}
public void testAllFiles() throws Throwable {
for(final String file : GetTextUtils.getAllTestedFiles()) {
- System.out.println("Start: " + file);
doTest(file);
}
}
diff --git a/plugins/gettext/test/com/jetbrains/gettext/GetTextUtils.java b/plugins/gettext/test/com/jetbrains/gettext/GetTextUtils.java
index d0099f4d0837..3a9ce71af357 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/GetTextUtils.java
+++ b/plugins/gettext/test/com/jetbrains/gettext/GetTextUtils.java
@@ -6,6 +6,7 @@ import com.intellij.openapi.application.PathManager;
* @author Svetlana.Zemlyanskaya
*/
public class GetTextUtils {
+ private static final String path = "community/plugins/gettext/test/com/jetbrains/gettext/";
public static String[] getAllTestedFiles() {
return new String[]{
@@ -15,18 +16,25 @@ public class GetTextUtils {
"complex_flags",
"msg_plural",
"range_flag",
- "string"};
+ "string",
+ "command_format",
+ "multi_id",
+ "command"};
}
- protected static String getDataSubpath() {
- return "community/plugins/gettext/test/com/jetbrains/gettext/lexer";
+ private static String getFullPath() {
+ return PathManager.getHomePath() + "/" + path;
}
- public static String getFullPath(final String fileName) {
- return PathManager.getHomePath() + "/" + getDataSubpath() + "/" + fileName;
+ public static String getFullSourcePath(final String fileName) {
+ return getFullPath() + "lexer/" + fileName + ".po";
}
- public static String getFullParserResultPath(final String fileName) {
- return getFullPath(fileName) + "_parser.txt";
+ public static String getFullLexerPath(final String fileName) {
+ return getFullPath() + "lexer/" + fileName + ".txt";
+ }
+
+ public static String getFullParserPath(final String fileName) {
+ return getFullPath() + "parser/" + fileName + ".txt";
}
}
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/command.po b/plugins/gettext/test/com/jetbrains/gettext/lexer/command.po
new file mode 100644
index 000000000000..a173b05f51cc
--- /dev/null
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/command.po
@@ -0,0 +1 @@
+msg
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/command.txt b/plugins/gettext/test/com/jetbrains/gettext/lexer/command.txt
new file mode 100644
index 000000000000..d845fd46f730
--- /dev/null
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/command.txt
@@ -0,0 +1 @@
+COMMAND ('msg')
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/command_format.po b/plugins/gettext/test/com/jetbrains/gettext/lexer/command_format.po
new file mode 100644
index 000000000000..a46f082513b6
--- /dev/null
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/command_format.po
@@ -0,0 +1,2 @@
+msgid ""
+msgstr
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/command_format.txt b/plugins/gettext/test/com/jetbrains/gettext/lexer/command_format.txt
new file mode 100644
index 000000000000..94128e89b9aa
--- /dev/null
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/command_format.txt
@@ -0,0 +1,6 @@
+MSGID ('msgid')
+WHITE_SPACE (' ')
+STRING ('""')
+WHITE_SPACE ('
+')
+MSGSTR ('msgstr')
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/complex_flags.txt b/plugins/gettext/test/com/jetbrains/gettext/lexer/complex_flags.txt
index 6cb191ceaf80..cde9a830533e 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/complex_flags.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/complex_flags.txt
@@ -4,24 +4,22 @@ COMMENT ('test')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS ('.')
-EXTR_COMMENT (' another')
+EXTR_COMMENT ('. another')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS (':')
-REFERENCE (' ref')
+REFERENCE (': ref')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS (',')
-WHITE_SPACE (' ')
+FLAG_COMMENT (',')
+DELIVERY (' ')
FUZZY_FLAG ('fuzzy')
DELIVERY (',')
-WHITE_SPACE (' ')
+DELIVERY (' ')
FORMAT_FLAG ('c-format')
DELIVERY (',')
-WHITE_SPACE (' ')
+DELIVERY (' ')
NO_FORMAT_FLAG ('no-objc-format')
WHITE_SPACE ('
')
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/flags.txt b/plugins/gettext/test/com/jetbrains/gettext/lexer/flags.txt
index 33db8a1dae30..766778232810 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/flags.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/flags.txt
@@ -4,18 +4,16 @@ COMMENT ('test')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS ('.')
-EXTR_COMMENT (' another')
+EXTR_COMMENT ('. another')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS (':')
-REFERENCE (' ref')
+REFERENCE (': ref')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS (',')
-WHITE_SPACE (' ')
+FLAG_COMMENT (',')
+DELIVERY (' ')
FUZZY_FLAG ('fuzzy')
DELIVERY (',')
WHITE_SPACE ('
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/msg_plural.txt b/plugins/gettext/test/com/jetbrains/gettext/lexer/msg_plural.txt
index 4cc17e19bbd6..fcc8aa935583 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/msg_plural.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/msg_plural.txt
@@ -4,18 +4,15 @@ COMMENT ('test')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS ('.')
-EXTR_COMMENT (' another')
+EXTR_COMMENT ('. another')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS (':')
-REFERENCE (' ref')
+REFERENCE (': ref')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS ('|')
-PREVIOUS_TRANSLATE_COMMENT (' msgid test')
+PREVIOUS_TRANSLATE_COMMENT ('| msgid test')
WHITE_SPACE ('
')
MSGID_PLURAL ('msgid_plural')
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/multi_id.po b/plugins/gettext/test/com/jetbrains/gettext/lexer/multi_id.po
new file mode 100644
index 000000000000..ed344f6586ec
--- /dev/null
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/multi_id.po
@@ -0,0 +1,7 @@
+msgid ""
+msgstr ""
+
+msgid ""
+
+msgid ""
+msgstr ""
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/multi_id.txt b/plugins/gettext/test/com/jetbrains/gettext/lexer/multi_id.txt
new file mode 100644
index 000000000000..40719f5ddd62
--- /dev/null
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/multi_id.txt
@@ -0,0 +1,27 @@
+MSGID ('msgid')
+WHITE_SPACE (' ')
+STRING ('""')
+WHITE_SPACE ('
+')
+MSGSTR ('msgstr')
+WHITE_SPACE (' ')
+STRING ('""')
+WHITE_SPACE ('
+')
+WHITE_SPACE ('
+')
+MSGID ('msgid')
+WHITE_SPACE (' ')
+STRING ('""')
+WHITE_SPACE ('
+')
+WHITE_SPACE ('
+')
+MSGID ('msgid')
+WHITE_SPACE (' ')
+STRING ('""')
+WHITE_SPACE ('
+')
+MSGSTR ('msgstr')
+WHITE_SPACE (' ')
+STRING ('""')
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/range_flag.txt b/plugins/gettext/test/com/jetbrains/gettext/lexer/range_flag.txt
index 60d2ec2e176a..51eed6d2ff54 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/range_flag.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/range_flag.txt
@@ -4,27 +4,25 @@ COMMENT ('test')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS ('.')
-EXTR_COMMENT (' another')
+EXTR_COMMENT ('. another')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS (':')
-REFERENCE (' ref')
+REFERENCE (': ref')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS (',')
-WHITE_SPACE (' ')
+FLAG_COMMENT (',')
+DELIVERY (' ')
FUZZY_FLAG ('fuzzy')
DELIVERY (',')
-WHITE_SPACE (' ')
+DELIVERY (' ')
RANGE_FLAG ('range')
COLON (':')
-WHITE_SPACE (' ')
-NUMBER ('0')
+DELIVERY (' ')
+RANGE_NUMBER ('0')
DOTS ('..')
-NUMBER ('10')
+RANGE_NUMBER ('10')
WHITE_SPACE ('
')
MSGID ('msgid')
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/simple.txt b/plugins/gettext/test/com/jetbrains/gettext/lexer/simple.txt
index ba45c1662815..6b18526dab75 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/simple.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/lexer/simple.txt
@@ -4,18 +4,15 @@ COMMENT ('test')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS ('.')
-EXTR_COMMENT (' another')
+EXTR_COMMENT ('. another')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS (':')
-REFERENCE (' ref')
+REFERENCE (': ref')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS ('|')
-PREVIOUS_TRANSLATE_COMMENT (' msgid test')
+PREVIOUS_TRANSLATE_COMMENT ('| msgid test')
WHITE_SPACE ('
')
MSGID ('msgid')
@@ -36,18 +33,15 @@ COMMENT ('t')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS ('.')
-EXTR_COMMENT (' another')
+EXTR_COMMENT ('. another')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS (':')
-REFERENCE (' ref')
+REFERENCE (': ref')
WHITE_SPACE ('
')
COMMENT_SYMBOLS ('#')
-COMMENT_SYMBOLS ('|')
-PREVIOUS_TRANSLATE_COMMENT (' msgid test')
+PREVIOUS_TRANSLATE_COMMENT ('| msgid test')
WHITE_SPACE ('
')
MSGID ('msgid')
diff --git a/plugins/gettext/test/com/jetbrains/gettext/parser/command.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/command.txt
new file mode 100644
index 000000000000..762a4108700e
--- /dev/null
+++ b/plugins/gettext/test/com/jetbrains/gettext/parser/command.txt
@@ -0,0 +1,8 @@
+GNU GetText File
+ MSG_BLOCK
+ HEADER
+
+ PsiErrorElement:Not enough commands
+ PsiErrorElement:Unexpected token
+
+ PsiElement(COMMAND)('msg')
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/parser/command_format.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/command_format.txt
new file mode 100644
index 000000000000..9d3f738d9b6e
--- /dev/null
+++ b/plugins/gettext/test/com/jetbrains/gettext/parser/command_format.txt
@@ -0,0 +1,12 @@
+GNU GetText File
+ MSG_BLOCK
+ HEADER
+
+ PsiErrorElement:Not enough commands
+ MSGID
+ PsiElement(MSGID)('msgid')
+ PsiWhiteSpace(' ')
+ PsiElement(STRING)('""')
+ PsiWhiteSpace('\n')
+ PsiErrorElement:String for msgstr is not specified
+ PsiElement(MSGSTR)('msgstr')
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/complex_flags_parser.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/complex_flags.txt
similarity index 75%
rename from plugins/gettext/test/com/jetbrains/gettext/lexer/complex_flags_parser.txt
rename to plugins/gettext/test/com/jetbrains/gettext/parser/complex_flags.txt
index 84ee7f7463e1..6a14a16a7bf8 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/complex_flags_parser.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/parser/complex_flags.txt
@@ -4,24 +4,22 @@ GNU GetText File
PsiComment(COMMENT)('test')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)('.')
MSG_BLOCK
HEADER
- PsiElement(EXTR_COMMENT)(' another')
+ PsiElement(EXTR_COMMENT)('. another')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)(':')
- PsiElement(REFERENCE)(' ref')
+ PsiElement(REFERENCE)(': ref')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)(',')
- PsiWhiteSpace(' ')
+ PsiElement(FLAG_COMMENT)(',')
+ PsiElement(DELIVERY)(' ')
PsiElement(FUZZY_FLAG)('fuzzy')
PsiElement(DELIVERY)(',')
- PsiWhiteSpace(' ')
+ PsiElement(DELIVERY)(' ')
PsiElement(FORMAT_FLAG)('c-format')
PsiElement(DELIVERY)(',')
- PsiWhiteSpace(' ')
+ PsiElement(DELIVERY)(' ')
PsiElement(NO_FORMAT_FLAG)('no-objc-format')
PsiWhiteSpace('\n')
MSG_CONTENT
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/flags_parser.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/flags.txt
similarity index 76%
rename from plugins/gettext/test/com/jetbrains/gettext/lexer/flags_parser.txt
rename to plugins/gettext/test/com/jetbrains/gettext/parser/flags.txt
index 039070d56e50..f605b0127a93 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/flags_parser.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/parser/flags.txt
@@ -4,18 +4,16 @@ GNU GetText File
PsiComment(COMMENT)('test')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)('.')
MSG_BLOCK
HEADER
- PsiElement(EXTR_COMMENT)(' another')
+ PsiElement(EXTR_COMMENT)('. another')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)(':')
- PsiElement(REFERENCE)(' ref')
+ PsiElement(REFERENCE)(': ref')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)(',')
- PsiWhiteSpace(' ')
+ PsiElement(FLAG_COMMENT)(',')
+ PsiElement(DELIVERY)(' ')
PsiElement(FUZZY_FLAG)('fuzzy')
PsiElement(DELIVERY)(',')
PsiWhiteSpace('\n')
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/msg_plural_parser.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/msg_plural.txt
similarity index 79%
rename from plugins/gettext/test/com/jetbrains/gettext/lexer/msg_plural_parser.txt
rename to plugins/gettext/test/com/jetbrains/gettext/parser/msg_plural.txt
index d9707ff13dc7..b4b8f9df72b2 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/msg_plural_parser.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/parser/msg_plural.txt
@@ -4,18 +4,15 @@ GNU GetText File
PsiComment(COMMENT)('test')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)('.')
MSG_BLOCK
HEADER
- PsiElement(EXTR_COMMENT)(' another')
+ PsiElement(EXTR_COMMENT)('. another')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)(':')
- PsiElement(REFERENCE)(' ref')
+ PsiElement(REFERENCE)(': ref')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)('|')
- PsiElement(PREVIOUS_TRANSLATE_COMMENT)(' msgid test')
+ PsiElement(PREVIOUS_TRANSLATE_COMMENT)('| msgid test')
PsiWhiteSpace('\n')
MSG_CONTENT
MSGID_PLURAL
@@ -39,7 +36,8 @@ GNU GetText File
MSGSTR
PsiElement(MSGSTR)('msgstr')
PsiElement(LBRACE)('[')
- PsiElement(NUMBER)('01')
+ PsiErrorElement:Wrong number format
+ PsiElement(NUMBER)('01')
PsiElement(RBRACE)(']')
PsiWhiteSpace(' ')
PsiElement(STRING)('"translated string"')
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/parser/multi_id.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/multi_id.txt
new file mode 100644
index 000000000000..5c3b1c6a3bd1
--- /dev/null
+++ b/plugins/gettext/test/com/jetbrains/gettext/parser/multi_id.txt
@@ -0,0 +1,39 @@
+GNU GetText File
+ MSG_BLOCK
+ HEADER
+
+ MSG_CONTENT
+ MSGID
+ PsiElement(MSGID)('msgid')
+ PsiWhiteSpace(' ')
+ PsiElement(STRING)('""')
+ PsiWhiteSpace('\n')
+ MSGSTR
+ PsiElement(MSGSTR)('msgstr')
+ PsiWhiteSpace(' ')
+ PsiElement(STRING)('""')
+ PsiWhiteSpace('\n')
+ PsiWhiteSpace('\n')
+ MSG_BLOCK
+ HEADER
+
+ PsiErrorElement:Not enough commands
+ MSGID
+ PsiElement(MSGID)('msgid')
+ PsiWhiteSpace(' ')
+ PsiElement(STRING)('""')
+ PsiWhiteSpace('\n')
+ PsiWhiteSpace('\n')
+ MSGID
+ PsiElement(MSGID)('msgid')
+ PsiWhiteSpace(' ')
+ PsiElement(STRING)('""')
+ PsiWhiteSpace('\n')
+ MSG_BLOCK
+ HEADER
+
+ PsiErrorElement:Not enough commands
+ MSGSTR
+ PsiElement(MSGSTR)('msgstr')
+ PsiWhiteSpace(' ')
+ PsiElement(STRING)('""')
\ No newline at end of file
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/parser_parser.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/parser.txt
similarity index 100%
rename from plugins/gettext/test/com/jetbrains/gettext/lexer/parser_parser.txt
rename to plugins/gettext/test/com/jetbrains/gettext/parser/parser.txt
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/range_flag_parser.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/range_flag.txt
similarity index 57%
rename from plugins/gettext/test/com/jetbrains/gettext/lexer/range_flag_parser.txt
rename to plugins/gettext/test/com/jetbrains/gettext/parser/range_flag.txt
index 46048336c942..4fdb2678507f 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/range_flag_parser.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/parser/range_flag.txt
@@ -4,37 +4,27 @@ GNU GetText File
PsiComment(COMMENT)('test')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)('.')
MSG_BLOCK
HEADER
- PsiElement(EXTR_COMMENT)(' another')
+ PsiElement(EXTR_COMMENT)('. another')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)(':')
- PsiElement(REFERENCE)(' ref')
+ PsiElement(REFERENCE)(': ref')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)(',')
- PsiWhiteSpace(' ')
+ PsiElement(FLAG_COMMENT)(',')
+ PsiElement(DELIVERY)(' ')
PsiElement(FUZZY_FLAG)('fuzzy')
PsiElement(DELIVERY)(',')
- PsiWhiteSpace(' ')
+ PsiElement(DELIVERY)(' ')
PsiElement(RANGE_FLAG)('range')
- MSG_CONTENT
- PsiErrorElement:Unexpected token
-
PsiElement(COLON)(':')
- PsiErrorElement:Unexpected token
-
- PsiWhiteSpace(' ')
- PsiElement(NUMBER)('0')
- PsiErrorElement:Unexpected token
-
+ PsiElement(DELIVERY)(' ')
+ PsiElement(RANGE_NUMBER)('0')
PsiElement(DOTS)('..')
- PsiErrorElement:Unexpected token
-
- PsiElement(NUMBER)('10')
- PsiWhiteSpace('\n')
+ PsiElement(RANGE_NUMBER)('10')
+ PsiWhiteSpace('\n')
+ MSG_CONTENT
MSGID
PsiElement(MSGID)('msgid')
PsiWhiteSpace(' ')
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/simple_parser.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/simple.txt
similarity index 72%
rename from plugins/gettext/test/com/jetbrains/gettext/lexer/simple_parser.txt
rename to plugins/gettext/test/com/jetbrains/gettext/parser/simple.txt
index 5250fbc94eb3..8b1fc6b4856d 100644
--- a/plugins/gettext/test/com/jetbrains/gettext/lexer/simple_parser.txt
+++ b/plugins/gettext/test/com/jetbrains/gettext/parser/simple.txt
@@ -4,18 +4,15 @@ GNU GetText File
PsiComment(COMMENT)('test')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)('.')
MSG_BLOCK
HEADER
- PsiElement(EXTR_COMMENT)(' another')
+ PsiElement(EXTR_COMMENT)('. another')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)(':')
- PsiElement(REFERENCE)(' ref')
+ PsiElement(REFERENCE)(': ref')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)('|')
- PsiElement(PREVIOUS_TRANSLATE_COMMENT)(' msgid test')
+ PsiElement(PREVIOUS_TRANSLATE_COMMENT)('| msgid test')
PsiWhiteSpace('\n')
MSG_CONTENT
MSGID
@@ -34,18 +31,15 @@ GNU GetText File
PsiComment(COMMENT)('t')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)('.')
MSG_BLOCK
HEADER
- PsiElement(EXTR_COMMENT)(' another')
+ PsiElement(EXTR_COMMENT)('. another')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)(':')
- PsiElement(REFERENCE)(' ref')
+ PsiElement(REFERENCE)(': ref')
PsiWhiteSpace('\n')
PsiComment(COMMENT_SYMBOLS)('#')
- PsiComment(COMMENT_SYMBOLS)('|')
- PsiElement(PREVIOUS_TRANSLATE_COMMENT)(' msgid test')
+ PsiElement(PREVIOUS_TRANSLATE_COMMENT)('| msgid test')
PsiWhiteSpace('\n')
MSG_CONTENT
MSGID
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/string_parser.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/string.txt
similarity index 100%
rename from plugins/gettext/test/com/jetbrains/gettext/lexer/string_parser.txt
rename to plugins/gettext/test/com/jetbrains/gettext/parser/string.txt
diff --git a/plugins/gettext/test/com/jetbrains/gettext/lexer/without_comments_parser.txt b/plugins/gettext/test/com/jetbrains/gettext/parser/without_comments.txt
similarity index 100%
rename from plugins/gettext/test/com/jetbrains/gettext/lexer/without_comments_parser.txt
rename to plugins/gettext/test/com/jetbrains/gettext/parser/without_comments.txt