Package com.intellij.lexer

Examples of com.intellij.lexer.Lexer


        /*DBLanguageFile originalFile = (DBLanguageFile) file.getViewProvider().getAllFiles().get(0).getOriginalFile();
        if (originalFile != null)  file = originalFile;*/

        String text = chameleon.getText();
        ParserDefinition parserDefinition = languageDialect.getParserDefinition();
        Lexer lexer = parserDefinition.createLexer(project);

        DBLanguageParser parser = (DBLanguageParser) parserDefinition.createParser(project);

        PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder(project, chameleon, lexer, languageDialect, text);
        ASTNode node = parser.parse(this, builder, file.getParseRootId());
View Full Code Here


    public PsiFile createFile(FileViewProvider viewProvider) {
        return new JFlexPsiFileImpl(viewProvider);
    }

    public SpaceRequirements spaceExistanceTypeBetweenTokens(ASTNode left, ASTNode right) {
        final Lexer lexer = createLexer(left.getPsi().getProject());
        return LanguageUtil.canStickTokensTogetherByLexer(left, right, lexer);
    }
View Full Code Here

        String str = "Ahoj {* tady bude jmeno *} {$jmeno} :) <a href=\"{link Dashboard:signal!, id => $id}\" n:href=\"Novak:detail!\" title=\"lol\">novak</a> {* a tady je konec *}";
        System.out.println(str);

        IElementType el;

        Lexer merge = new LatteLexer();
        merge.start(str);

        while((el = merge.getTokenType()) != null) {
            System.out.printf("%s: %d %d '%s'\n", el.toString(), merge.getTokenStart(), merge.getTokenEnd(), str.substring(merge.getTokenStart(), merge.getTokenEnd()));
            merge.advance();
        }
    }
View Full Code Here

    public PsiFile createFile(FileViewProvider fileViewProvider) {
        return new NginxPsiFileImpl(fileViewProvider);
    }

    public SpaceRequirements spaceExistanceTypeBetweenTokens(ASTNode left, ASTNode right) {
        final Lexer lexer = createLexer(left.getPsi().getProject());
        return LanguageUtil.canStickTokensTogetherByLexer(left, right, lexer, 0);
    }
View Full Code Here

    int bgcolor = colorScheme.getDefaultBackground().getRGB();
    char ch;
    LineInfo startLine;
    float topWeight;
    float bottomWeight;
    Lexer lexer = hl.getHighlightingLexer();
    IElementType tokenType;

    Graphics2D g = (Graphics2D)img.getGraphics();
    g.setComposite(CLEAR);
    g.fillRect(0, 0, img.getWidth(), img.getHeight());

    lexer.start(text);
    tokenType = lexer.getTokenType();

    int x, y;
    while(tokenType != null) {
      int start = lexer.getTokenStart();
      startLine = getLine(start);
      y = startLine.number * config.pixelsPerLine;

      color = getColorForElementType(tokenType, hl, colorScheme);

      // Pre-loop to count whitespace from start of line.
      x = 0;
      for (int i = startLine.begin; i < start; i++) {
        // Dont count lines inside of folded regions.
        if (isFolded(i, folding)) {
          continue;
        }

        if(text.charAt(i) == '\t') {
          x += 4;
        } else {
          x += 1;
        }

        // Abort if this line is getting to long...
        if(x > config.width) break;
      }

      // Render whole token, make sure multi lines are handled gracefully.
      for(int i = start; i < lexer.getTokenEnd(); i++) {
        // Don't render folds.
        if (isFolded(i, folding)) {
          continue;
        }

        ch = text.charAt(i);

        if(ch == '\n') {
          x = 0;
          y += config.pixelsPerLine;
        } else if(ch == '\t') {
          x += 4;
        } else {
          x += 1;
        }

        topWeight = CharacterWeight.getTopWeight(text.charAt(i));
        bottomWeight = CharacterWeight.getBottomWeight(text.charAt(i));

        // No point rendering non visible characters.
        if(topWeight == 0) continue;

        if(0 <= x && x < img.getWidth() && 0 <= y && y + config.pixelsPerLine < img.getHeight()) {
          switch(config.pixelsPerLine) {
            case 1:
              // Cant show whitespace between lines any more. This looks rather ugly...
              setPixel(x,  y + 1, color, (float) ((topWeight + bottomWeight) / 2.0));
              break;

            case 2:
              // Two lines we make the top line a little lighter to give the illusion of whitespace between lines.
              setPixel(x, y, color, topWeight * 0.5f);
              setPixel(x, y + 1, color, bottomWeight);
              break;
            case 3:
              // Three lines we make the top nearly empty, and fade the bottom a little too
              setPixel(x, y, color, topWeight * 0.3f);
              setPixel(x, y + 1, color, (float) ((topWeight + bottomWeight) / 2.0));
              setPixel(x, y + 2, color, bottomWeight * 0.7f);
              break;
            case 4:
              // Empty top line, Nice blend for everything else
              setPixel(x, y + 1, color, topWeight);
              setPixel(x, y + 2, color, (float) ((topWeight + bottomWeight) / 2.0));
              setPixel(x, y + 3, color, bottomWeight);
          }
        }
      }

      lexer.advance();
      tokenType = lexer.getTokenType();
    }
  }
View Full Code Here

    }
    assertSameLinesWithFile(expectedFileName, result);
  }

  private void doTest() throws IOException {
    Lexer lexer = new CfmlLexer(true, null);
    String testText = loadFile(getTestName(true) + ".test.cfml");
    doFileLexerTest(lexer, testText, getDataSubpath() + getTestName(true) + ".test.expected");
  }
View Full Code Here

public class CfmlIndexPatternBuilder implements IndexPatternBuilder {
  public Lexer getIndexingLexer(@NotNull final PsiFile file) {
    if (file instanceof CfmlFile) {
      Project project = file.getProject();
      SqlLanguageDialect dialect = SqlDialectMappings.getMapping(project, file.getVirtualFile());
      Lexer sqlLexer = LanguageParserDefinitions.INSTANCE.forLanguage(dialect).createLexer(project);

      LayeredLexer cfmlLayeredLexer = new LayeredLexer(new CfmlLexer(true, project));

      cfmlLayeredLexer.registerLayer(new XmlHighlightingLexer(), CfmlElementTypes.TEMPLATE_TEXT);
      cfmlLayeredLexer.registerLayer(sqlLexer, CfmlElementTypes.SQL);
View Full Code Here

  public void testTagComment() throws Throwable {
    doTest();
  }

  public void testCommentBalance() throws Throwable {
    Lexer lexer = new CfmlLexer(true, null);
    String testText1 = loadFile(getTestName(true) + "1.test.cfml");
    String expected1 = getDataSubpath() + getTestName(true) + "1.test.expected";
    doFileLexerTest(lexer, testText1, expected1);

    String testText2 = loadFile(getTestName(true) + "2.test.cfml");
View Full Code Here

    }
    assertSameLinesWithFile(expectedFilePath, result);
  }

  private void doTest() throws IOException {
    Lexer lexer = new CfmlLexer(true, null);
    String testText = loadFile(getTestName(true) + ".test.cfml");
    doFileLexerTest(lexer, testText, getDataSubpath() + getTestName(true) + ".test.expected");
  }
View Full Code Here

    return new OgnlFile(fileViewProvider);
  }

  @Override
  public SpaceRequirements spaceExistanceTypeBetweenTokens(final ASTNode left, final ASTNode right) {
    final Lexer lexer = createLexer(left.getPsi().getProject());
    return LanguageUtil.canStickTokensTogetherByLexer(left, right, lexer);
  }
View Full Code Here

TOP

Related Classes of com.intellij.lexer.Lexer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.