Exemplo n.º 1
0
    def createLexers(self):

        lex = {}
        lex['.c'] = CFamilyLexer()
        lex['.h'] = CFamilyLexer()
        lex['.cpp'] = CppLexer()
        lex['.hpp'] = CppLexer()
        lex['.css'] = CssLexer()
        lex['.sass'] = SassLexer()
        lex['.yaml'] = YamlLexer()
        lex['.yml'] = YamlLexer()
        lex['.json'] = JsonLexer()
        lex['.cs'] = CSharpLexer()
        lex['.fs'] = FSharpLexer()
        lex['.e'] = EiffelLexer()
        lex['.erl'] = ErlangLexer()
        lex['.hrl'] = ErlangLexer()
        lex['.es'] = ErlangLexer()
        lex['.f03'] = FortranLexer()
        lex['.f90'] = FortranLexer()
        lex['.F03'] = FortranLexer()
        lex['.F90'] = FortranLexer()
        lex['.go'] = GoLexer()
        lex['.hs'] = HaskellLexer()
        lex['.v'] = VerilogLexer()
        lex['.vhdl'] = VhdlLexer()
        lex['.vhd'] = VhdlLexer()
        lex['.html'] = HtmlLexer()
        lex['.htm'] = HtmlLexer()
        lex['.xhtml'] = HtmlLexer()
        lex['.xml'] = XmlLexer()
        lex['.js'] = JavascriptLexer()
        lex['.tex'] = TypeScriptLexer()
        lex['.coffee'] = CoffeeScriptLexer()
        lex['.java'] = JavaLexer()
        lex['.scala'] = ScalaLexer()
        lex['.kt'] = KotlinLexer()
        lex['.ktm'] = KotlinLexer()
        lex['.kts'] = KotlinLexer()
        lex['.lisp'] = CommonLispLexer()
        lex['make'] = MakefileLexer()
        lex['Make'] = MakefileLexer()
        lex['CMake'] = CMakeLexer()
        lex['cmake'] = CMakeLexer()
        lex['.m'] = MatlabLexer()
        lex['.mat'] = MatlabLexer()
        lex['.dpr'] = DelphiLexer()
        lex['.perl'] = PerlLexer()
        lex['.php'] = PhpLexer()
        lex['.pr'] = PrologLexer()
        lex['.py'] = Python3Lexer()
        lex['.rb'] = RubyLexer()
        lex['.sh'] = BashLexer()
        lex['.sql'] = MySqlLexer()
        lex['.mysql'] = MySqlLexer()
        lex['.tcl'] = TclLexer()
        lex['.awk'] = AwkLexer()

        return lex
Exemplo n.º 2
0
def test_can_analyze_text():
    mysql_lexer = MySqlLexer()
    sql_lexer = SqlLexer()
    tsql_lexer = TransactSqlLexer()
    code_to_expected_lexer_map = {
        'select `a`, `bc` from some': mysql_lexer,
        'select a, bc from some': sql_lexer,
        'select [a], [bc] from some': tsql_lexer,
        '-- `a`, `bc`\nselect [a], [bc] from some': tsql_lexer,
        '-- `a`, `bc`\nselect [a], [bc] from some; go': tsql_lexer,
    }
    sql_lexers = set(code_to_expected_lexer_map.values())
    for code, expected_lexer in code_to_expected_lexer_map.items():
        ratings_and_lexers = list((lexer.analyse_text(code), lexer.name) for lexer in sql_lexers)
        best_rating, best_lexer_name  = sorted(ratings_and_lexers, reverse=True)[0]
        expected_rating = expected_lexer.analyse_text(code)
        message = (
            'lexer must be %s (rating %.2f) instead of '
            '%s (rating %.2f) for analyse_text() on code:\n%s') % (
            expected_lexer.name,
            expected_rating,
            best_lexer_name,
            best_rating,
            code
        )
        assert expected_lexer.name == best_lexer_name, message
Exemplo n.º 3
0
Arquivo: sql.py Projeto: rcy17/pybase
def highlight(text):
    # Generated HTML contains unnecessary newline at the end
    # before </pre> closing tag.
    # We need to remove that newline because it's screwing up
    # QTextEdit formatting and is being displayed
    # as a non-editable whitespace.

    # However, origin solution works wired for \n at start and end
    # I add flag \b, which is invisible
    text = '\b' + text + '\b'
    highlighted_text = _highlight(text, MySqlLexer(), HtmlFormatter())

    # Split generated HTML by last newline in it
    # argument 1 indicates that we only want to split the string
    # by one specified delimiter from the right.
    parts = highlighted_text.rsplit("\n", 1)

    # Glue back 2 split parts to get the HTML without last
    # unnecessary newline
    highlighted_text_no_last_newline = "".join(parts)
    return highlighted_text_no_last_newline.replace('\b', '')
Exemplo n.º 4
0
def lexer():
    yield MySqlLexer()
Exemplo n.º 5
0
# Re-write index.html so that the code block comments are replaced by the
# Pygment-ized code.
blocks = get_blocks()
with codecs.open('index-src.html', 'r', 'utf-8') as fi:
    with codecs.open('index.html', 'w', 'utf-8') as fo:
        for line in fi:
            line_els = line.strip().split()
            if len(line_els) > 1 and line_els[1] == 'code-block:':
                block_name = line_els[2]
                if block_name in blocks:
                    block = blocks[block_name]['block']
                    lang = blocks[block_name]['lang']
                    if lang == 'python':
                        lexer = PythonLexer()
                        formatter = pyformatter
                    elif lang == 'shell':
                        lexer = BashLexer()
                        formatter = shformatter
                    elif lang == 'sql':
                        lexer = MySqlLexer()
                        formatter = sqlformatter
                    elif lang == 'ini':
                        lexer = IniLexer()
                        formatter = iniformatter
                    else:
                        lexer = JsonLexer()
                        formatter = jsonformatter
                    fo.write(highlight(block, lexer, formatter))
            else:
                fo.write(line)
Exemplo n.º 6
0
        pass

    if extens == "py" or extens == "pyw" or extens == "sc" or extens == "sage" or extens == "tac":
        ui_core = CoreUI(lexer=PythonLexer())
    elif extens == "txt" or extens == "README" or extens == "text":
        ui_core = CoreUI(lexer=TextLexer())
    elif extens == "htm" or extens == "html" or extens == "css" or extens == "js" or extens == "md":
        ui_core = CoreUI(lexer=HtmlLexer())
    elif extens == "xml" or extens == "xsl" or extens == "rss" or extens == "xslt" or extens == "xsd" or extens == "wsdl" or extens == "wsf":
        ui_core = CoreUI(lexer=XmlLexer())
    elif extens == "php" or extens == "php5":
        ui_core = CoreUI(lexer=HtmlPhpLexer())
    elif extens == "pl" or extens == "pm" or extens == "nqp" or extens == "p6" or extens == "6pl" or extens == "p6l" or extens == "pl6" or extens == "pm" or extens == "p6m" or extens == "pm6" or extens == "t":
        ui_core = CoreUI(lexer=Perl6Lexer())
    elif extens == "rb" or extens == "rbw" or extens == "rake" or extens == "rbx" or extens == "duby" or extens == "gemspec":
        ui_core = CoreUI(lexer=RubyLexer())
    elif extens == "ini" or extens == "init":
        ui_core = CoreUI(lexer=IniLexer())
    elif extens == "conf" or extens == "cnf" or extens == "config":
        ui_core = CoreUI(lexer=ApacheConfLexer())
    elif extens == "sh" or extens == "cmd" or extens == "bashrc" or extens == "bash_profile":
        ui_core = CoreUI(lexer=BashLexer())
    elif extens == "diff" or extens == "patch":
        ui_core = CoreUI(lexer=DiffLexer())
    elif extens == "cs":
        ui_core = CoreUI(lexer=CSharpLexer())
    elif extens == "sql":
        ui_core = CoreUI(lexer=MySqlLexer())
    else:
        ui_core = CoreUI(lexer=PythonLexer())  # default (no extension) lexer is python
    ui_core.mainloop()