diff options
author | Colomban Wendling <ban@herbesfolles.org> | 2012-09-13 16:23:15 +0200 |
---|---|---|
committer | Colomban Wendling <ban@herbesfolles.org> | 2012-09-13 16:23:15 +0200 |
commit | 2a32bdcc5e67b568516e9016b9f787510483a500 (patch) | |
tree | d5995b49d3c8d60f34d485d9e77dd02f227a1fa8 /lexers/LexRuby.cxx | |
parent | a4d5e79127d5a91c4bda09990426611f4d4cfbdb (diff) | |
download | scintilla-mirror-2a32bdcc5e67b568516e9016b9f787510483a500.tar.gz |
Fix folding of "for" Ruby loops
The "for" loops can end with a "do" keyword, and this "do" shouldn't
start its own scope.
Diffstat (limited to 'lexers/LexRuby.cxx')
-rw-r--r-- | lexers/LexRuby.cxx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lexers/LexRuby.cxx b/lexers/LexRuby.cxx index 23115e6e0..22364c19c 100644 --- a/lexers/LexRuby.cxx +++ b/lexers/LexRuby.cxx @@ -1436,7 +1436,8 @@ static bool keywordIsAmbiguous(const char *prevWord) || !strcmp(prevWord, "do") || !strcmp(prevWord, "while") || !strcmp(prevWord, "unless") - || !strcmp(prevWord, "until")) { + || !strcmp(prevWord, "until") + || !strcmp(prevWord, "for")) { return true; } else { return false; @@ -1554,6 +1555,7 @@ static bool keywordIsModifier(const char *word, #define WHILE_BACKWARDS "elihw" #define UNTIL_BACKWARDS "litnu" +#define FOR_BACKWARDS "rof" // Nothing fancy -- look to see if we follow a while/until somewhere // on the current line @@ -1591,7 +1593,8 @@ static bool keywordDoStartsLoop(int pos, *dst = 0; // Did we see our keyword? if (!strcmp(prevWord, WHILE_BACKWARDS) - || !strcmp(prevWord, UNTIL_BACKWARDS)) { + || !strcmp(prevWord, UNTIL_BACKWARDS) + || !strcmp(prevWord, FOR_BACKWARDS)) { return true; } // We can move pos to the beginning of the keyword, and then |