| @@ -51,4 +51,4 @@ target | |||||
| # Ctags | # Ctags | ||||
| */tags | */tags | ||||
| log | |||||
| logs | |||||
| @@ -27,7 +27,7 @@ class Codelet(object): | |||||
| """ | """ | ||||
| def __init__(self, name, code, filename, language, authors, code_url, | def __init__(self, name, code, filename, language, authors, code_url, | ||||
| date_created, date_modified, rank, symbols=None, origin=None): | |||||
| date_created, date_modified, rank, symbols=None, origin=None): | |||||
| """ | """ | ||||
| Create a Codelet instance. | Create a Codelet instance. | ||||
| @@ -1,4 +1,283 @@ | |||||
| { | { | ||||
| "_comment" : "A list of programming languages supported by `bitshift`.", | "_comment" : "A list of programming languages supported by `bitshift`.", | ||||
| "languages" : ["Debian Sourcelist", "Delphi", "JavaScript+Mako", "Brainfuck", "Ceylon", "JavaScript+Django/Jinja", "HTML+Evoque", "NumPy", "Modula-2", "LiveScript", "Nimrod", "Bash", "HTML+Django/Jinja", "CSS+PHP", "XML+Lasso", "VimL", "CSS+Genshi Text", "Fancy", "Coldfusion HTML", "cfstatement", "Scalate Server Page", "Smarty", "XML+Evoque", "haXe", "PowerShell", "Tea", "HTML+Cheetah", "Mason", "Django/Jinja", "JAGS", "ApacheConf", "DTD", "Lighttpd configuration file", "Java", "JavaScript+Genshi Text", "Scheme", "Nemerle", "RHTML", "Ragel in Java Host", "Darcs Patch", "Puppet", "Octave", "CoffeeScript", "Ragel in D Host", "Scilab", "Monkey", "HTML+Myghty", "CSS", "JavaScript+Smarty", "Io", "COBOLFree", "Asymptote", "vhdl", "Python 3", "CSS+Ruby", "Fortran", "d-objdump", "MySQL", "REBOL", "C++", "ERB", "CBM BASIC V2", "Befunge", "Julia", "MoonScript", "Ruby", "XML+Smarty", "Dylan", "Groovy", "MoinMoin/Trac Wiki markup", "autohotkey", "C", "HTML", "Felix", "CMake", "NSIS", "SourcePawn", "Mako", "VGL", "Velocity", "Koka", "CUDA", "Gnuplot", "IRC logs", "Prolog", "Python", "CSS+Django/Jinja", "verilog", "Smalltalk", "JavaScript+Myghty", "YAML", "Julia console", "ANTLR With ActionScript Target", "XML+Mako", "XSLT", "UrbiScript", "Scaml", "S", "DylanLID", "MAQL", "sqlite3con", "Boo", "OCaml", "eC", "ActionScript", "VB.net", "SquidConf", "XQuery", "D", "Fantom", "Gettext Catalog", "Logos", "Lasso", "SCSS", "BBCode", "Haml", "FoxPro", "Python 3.0 Traceback", "MuPAD", "XML+Ruby", "Dart", "IDL", "dg", "Evoque", "Jade", "c-objdump", "Kconfig", "Java Server Page", "reg", "ABAP", "XML+Velocity", "JavaScript+Cheetah", "HTML+Mako", "Ragel in Ruby Host", "RobotFramework", "Protocol Buffer", "CFEngine3", "Ragel", "GLSL", "COBOL", "TypeScript", "Ada", "PostgreSQL SQL dialect", "Xtend", "Logtalk", "objdump", "CSS+Mako", "ca65", "Objective-C++", "Gherkin", "HTML+PHP", "Makefile", "PostScript", "Hxml", "Kotlin", "PL/pgSQL", "Vala", "Haskell", "Bro", "Lua", "POVRay", "Sass", "ANTLR With Java Target", "Tcl", "ANTLR With ObjectiveC Target", "JavaScript+Ruby", "Racket", "AspectJ", "Base Makefile", "ANTLR With Python Target", "cpp-objdump", "Genshi Text", "Ioke", "PyPy Log", "Croc", "Objective-J", "GAS", "Batchfile", "Snobol", "XML", "ANTLR", "Opa", "XML+Cheetah", "Go", "Diff", "MiniD", "Cython", "Ragel in C Host", "Erlang", "Debian Control file", "aspx-vb", "BUGS", "Ragel in CPP Host", "aspx-cs", "Properties", "Groff", "Clojure", "Modelica", "QML", "JavaScript+Lasso", "ANTLR With Perl Target", "Genshi", "BlitzMax", "Treetop", "Matlab", "Myghty", "HTML+Genshi", "Duel", "Perl", "FSharp", "reStructuredText", "NewLisp", "Scala", "CSS+Lasso", "XML+PHP", "Stan", "INI", "MOOCode", "Shell Session", "RPMSpec", "Newspeak", "Bash Session", "Coq", "Raw token data", "Tcsh", "HTML+Lasso", "C#", "Gosu Template", "RConsole", "MXML", "TeX", "CSS+Smarty", "Text only", "ANTLR With C# Target", "OpenEdge ABL", "Cheetah", "Smali", "CSS+Myghty", "Rd", "LLVM", "Standard ML", "Elixir", "Nginx configuration file", "GoodData-CL", "AppleScript", "HTML+Smarty", "Objective-C", "JavaScript", "Rust", "Common Lisp", "Embedded Ragel", "ActionScript 3", "systemverilog", "Literate Haskell", "Python Traceback", "PHP", "ANTLR With CPP Target", "Gosu", "Hybris", "JavaScript+PHP", "Factor", "HTML+Velocity", "Mscgen", "Ooc", "SQL", "HTTP", "ECL", "Redcode", "Ragel in Objective C Host", "XML+Django/Jinja", "Awk", "JSON", "NASM", "ANTLR With Ruby Target", "XML+Myghty", "AutoIt", "Mako", "CSS+Mako", "HTML+Mako", "XML+Mako", "JavaScript+Mako"] | |||||
| "languages" : [ | |||||
| "Debian Sourcelist", | |||||
| "Delphi", | |||||
| "JavaScript+Mako", | |||||
| "Brainfuck", | |||||
| "Ceylon", | |||||
| "JavaScript+Django/Jinja", | |||||
| "HTML+Evoque", | |||||
| "NumPy", | |||||
| "Modula-2", | |||||
| "LiveScript", | |||||
| "Nimrod", | |||||
| "Bash", | |||||
| "HTML+Django/Jinja", | |||||
| "CSS+PHP", | |||||
| "XML+Lasso", | |||||
| "VimL", | |||||
| "CSS+Genshi Text", | |||||
| "Fancy", | |||||
| "Coldfusion HTML", | |||||
| "cfstatement", | |||||
| "Scalate Server Page", | |||||
| "Smarty", | |||||
| "XML+Evoque", | |||||
| "haXe", | |||||
| "PowerShell", | |||||
| "Tea", | |||||
| "HTML+Cheetah", | |||||
| "Mason", | |||||
| "Django/Jinja", | |||||
| "JAGS", | |||||
| "ApacheConf", | |||||
| "DTD", | |||||
| "Lighttpd configuration file", | |||||
| "Java", | |||||
| "JavaScript+Genshi Text", | |||||
| "Scheme", | |||||
| "Nemerle", | |||||
| "RHTML", | |||||
| "Ragel in Java Host", | |||||
| "Darcs Patch", | |||||
| "Puppet", | |||||
| "Octave", | |||||
| "CoffeeScript", | |||||
| "Ragel in D Host", | |||||
| "Scilab", | |||||
| "Monkey", | |||||
| "HTML+Myghty", | |||||
| "CSS", | |||||
| "JavaScript+Smarty", | |||||
| "Io", | |||||
| "COBOLFree", | |||||
| "Asymptote", | |||||
| "vhdl", | |||||
| "CSS+Ruby", | |||||
| "Fortran", | |||||
| "d-objdump", | |||||
| "MySQL", | |||||
| "REBOL", | |||||
| "C++", | |||||
| "ERB", | |||||
| "CBM BASIC V2", | |||||
| "Befunge", | |||||
| "Julia", | |||||
| "MoonScript", | |||||
| "Ruby", | |||||
| "XML+Smarty", | |||||
| "Dylan", | |||||
| "Groovy", | |||||
| "MoinMoin/Trac Wiki markup", | |||||
| "autohotkey", | |||||
| "C", | |||||
| "HTML", | |||||
| "Felix", | |||||
| "CMake", | |||||
| "NSIS", | |||||
| "SourcePawn", | |||||
| "Mako", | |||||
| "VGL", | |||||
| "Velocity", | |||||
| "Koka", | |||||
| "CUDA", | |||||
| "Gnuplot", | |||||
| "IRC logs", | |||||
| "Prolog", | |||||
| "Python", | |||||
| "CSS+Django/Jinja", | |||||
| "verilog", | |||||
| "Smalltalk", | |||||
| "JavaScript+Myghty", | |||||
| "YAML", | |||||
| "Julia console", | |||||
| "ANTLR With ActionScript Target", | |||||
| "XML+Mako", | |||||
| "XSLT", | |||||
| "UrbiScript", | |||||
| "Scaml", | |||||
| "S", | |||||
| "DylanLID", | |||||
| "MAQL", | |||||
| "sqlite3con", | |||||
| "Boo", | |||||
| "OCaml", | |||||
| "eC", | |||||
| "ActionScript", | |||||
| "VB.net", | |||||
| "SquidConf", | |||||
| "XQuery", | |||||
| "D", | |||||
| "Fantom", | |||||
| "Gettext Catalog", | |||||
| "Logos", | |||||
| "Lasso", | |||||
| "SCSS", | |||||
| "BBCode", | |||||
| "Haml", | |||||
| "FoxPro", | |||||
| "MuPAD", | |||||
| "XML+Ruby", | |||||
| "Dart", | |||||
| "IDL", | |||||
| "dg", | |||||
| "Evoque", | |||||
| "Jade", | |||||
| "c-objdump", | |||||
| "Kconfig", | |||||
| "Java Server Page", | |||||
| "reg", | |||||
| "ABAP", | |||||
| "XML+Velocity", | |||||
| "JavaScript+Cheetah", | |||||
| "HTML+Mako", | |||||
| "Ragel in Ruby Host", | |||||
| "RobotFramework", | |||||
| "Protocol Buffer", | |||||
| "CFEngine3", | |||||
| "Ragel", | |||||
| "GLSL", | |||||
| "COBOL", | |||||
| "TypeScript", | |||||
| "Ada", | |||||
| "PostgreSQL SQL dialect", | |||||
| "Xtend", | |||||
| "Logtalk", | |||||
| "objdump", | |||||
| "CSS+Mako", | |||||
| "ca65", | |||||
| "Objective-C++", | |||||
| "Gherkin", | |||||
| "HTML+PHP", | |||||
| "Makefile", | |||||
| "PostScript", | |||||
| "Hxml", | |||||
| "Kotlin", | |||||
| "PL/pgSQL", | |||||
| "Vala", | |||||
| "Haskell", | |||||
| "Bro", | |||||
| "Lua", | |||||
| "POVRay", | |||||
| "Sass", | |||||
| "ANTLR With Java Target", | |||||
| "Tcl", | |||||
| "ANTLR With ObjectiveC Target", | |||||
| "JavaScript+Ruby", | |||||
| "Racket", | |||||
| "AspectJ", | |||||
| "Base Makefile", | |||||
| "ANTLR With Python Target", | |||||
| "cpp-objdump", | |||||
| "Genshi Text", | |||||
| "Ioke", | |||||
| "PyPy Log", | |||||
| "Croc", | |||||
| "Objective-J", | |||||
| "GAS", | |||||
| "Batchfile", | |||||
| "Snobol", | |||||
| "XML", | |||||
| "ANTLR", | |||||
| "Opa", | |||||
| "XML+Cheetah", | |||||
| "Go", | |||||
| "Diff", | |||||
| "MiniD", | |||||
| "Cython", | |||||
| "Ragel in C Host", | |||||
| "Erlang", | |||||
| "Debian Control file", | |||||
| "aspx-vb", | |||||
| "BUGS", | |||||
| "Ragel in CPP Host", | |||||
| "aspx-cs", | |||||
| "Properties", | |||||
| "Groff", | |||||
| "Clojure", | |||||
| "Modelica", | |||||
| "QML", | |||||
| "JavaScript+Lasso", | |||||
| "ANTLR With Perl Target", | |||||
| "Genshi", | |||||
| "BlitzMax", | |||||
| "Treetop", | |||||
| "Matlab", | |||||
| "Myghty", | |||||
| "HTML+Genshi", | |||||
| "Duel", | |||||
| "Perl", | |||||
| "FSharp", | |||||
| "reStructuredText", | |||||
| "NewLisp", | |||||
| "Scala", | |||||
| "CSS+Lasso", | |||||
| "XML+PHP", | |||||
| "Stan", | |||||
| "INI", | |||||
| "MOOCode", | |||||
| "Shell Session", | |||||
| "RPMSpec", | |||||
| "Newspeak", | |||||
| "Bash Session", | |||||
| "Coq", | |||||
| "Raw token data", | |||||
| "Tcsh", | |||||
| "HTML+Lasso", | |||||
| "C#", | |||||
| "Gosu Template", | |||||
| "RConsole", | |||||
| "MXML", | |||||
| "TeX", | |||||
| "CSS+Smarty", | |||||
| "Text only", | |||||
| "ANTLR With C# Target", | |||||
| "OpenEdge ABL", | |||||
| "Cheetah", | |||||
| "Smali", | |||||
| "CSS+Myghty", | |||||
| "Rd", | |||||
| "LLVM", | |||||
| "Standard ML", | |||||
| "Elixir", | |||||
| "Nginx configuration file", | |||||
| "GoodData-CL", | |||||
| "AppleScript", | |||||
| "HTML+Smarty", | |||||
| "Objective-C", | |||||
| "JavaScript", | |||||
| "Rust", | |||||
| "Common Lisp", | |||||
| "Embedded Ragel", | |||||
| "ActionScript 3", | |||||
| "systemverilog", | |||||
| "Literate Haskell", | |||||
| "PHP", | |||||
| "ANTLR With CPP Target", | |||||
| "Gosu", | |||||
| "Hybris", | |||||
| "JavaScript+PHP", | |||||
| "Factor", | |||||
| "HTML+Velocity", | |||||
| "Mscgen", | |||||
| "Ooc", | |||||
| "SQL", | |||||
| "HTTP", | |||||
| "ECL", | |||||
| "Redcode", | |||||
| "Ragel in Objective C Host", | |||||
| "XML+Django/Jinja", | |||||
| "Awk", | |||||
| "JSON", | |||||
| "NASM", | |||||
| "ANTLR With Ruby Target", | |||||
| "XML+Myghty", | |||||
| "AutoIt", | |||||
| "Mako", | |||||
| "CSS+Mako", | |||||
| "HTML+Mako", | |||||
| "XML+Mako", | |||||
| "JavaScript+Mako" | |||||
| ] | |||||
| } | } | ||||
| @@ -1,4 +1,10 @@ | |||||
| import json, pygments.lexers as pgl, sys, socket, struct | |||||
| import json | |||||
| import sys | |||||
| import socket | |||||
| import struct | |||||
| from pygments import lexers as pgl, util | |||||
| from ..languages import LANGS | from ..languages import LANGS | ||||
| from .python import parse_py | from .python import parse_py | ||||
| @@ -19,13 +25,14 @@ def _lang(codelet): | |||||
| Modify function to incorporate tags from stackoverflow. | Modify function to incorporate tags from stackoverflow. | ||||
| """ | """ | ||||
| if codelet.filename is not None: | |||||
| try: | |||||
| return pgl.guess_lexer_for_filename(codelet.filename, codelet.code).name | |||||
| except: | |||||
| raise UnsupportedFileError('Could not find a lexer for the codelet\'s filename') | |||||
| return LANGS.index(pgl.guess_lexer(codelet.code)) | |||||
| try: | |||||
| if codelet.filename: | |||||
| lex = pgl.guess_lexer_for_filename(codelet.filename, codelet.code) | |||||
| else: | |||||
| lex = pgl.guess_lexer(codelet.code) | |||||
| except util.ClassNotFound: | |||||
| raise UnsupportedFileError(codelet.filename) | |||||
| return LANGS.index(lex.name) | |||||
| def _recv_data(server_socket): | def _recv_data(server_socket): | ||||
| """ | """ | ||||
| @@ -39,8 +46,9 @@ def _recv_data(server_socket): | |||||
| """ | """ | ||||
| recv_size = 8192 | recv_size = 8192 | ||||
| total_data = []; size_data = cur_data = '' | |||||
| total_size = 0; size = sys.maxint | |||||
| total_data = [] | |||||
| size_data = cur_data = '' | |||||
| total_size, size = 0, sys.maxint | |||||
| while total_size < size: | while total_size < size: | ||||
| cur_data = server_socket.recv(recv_size) | cur_data = server_socket.recv(recv_size) | ||||
| @@ -61,8 +69,7 @@ def _recv_data(server_socket): | |||||
| total_size = sum([len(s) for s in total_data]) | total_size = sum([len(s) for s in total_data]) | ||||
| server_socket.close() | server_socket.close() | ||||
| return ''.join(total_data); | |||||
| return ''.join(total_data) | |||||
| def parse(codelet): | def parse(codelet): | ||||
| """ | """ | ||||
| @@ -76,7 +83,8 @@ def parse(codelet): | |||||
| :type code: Codelet | :type code: Codelet | ||||
| """ | """ | ||||
| lang = _lang(codelet); source = codelet.code | |||||
| lang = _lang(codelet) | |||||
| source = codelet.code | |||||
| codelet.language = lang | codelet.language = lang | ||||
| server_socket_number = 5000 + lang | server_socket_number = 5000 + lang | ||||
| @@ -86,8 +94,7 @@ def parse(codelet): | |||||
| else: | else: | ||||
| server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | ||||
| server_socket.connect(("localhost", server_socket_number)) | server_socket.connect(("localhost", server_socket_number)) | ||||
| server_socket.send("%d\n%s" % (len(source), source)); | |||||
| server_socket.send("%d\n%s" % (len(source), source)) | |||||
| symbols = json.loads(_recv_data(server_socket)) | symbols = json.loads(_recv_data(server_socket)) | ||||
| codelet.symbols = symbols | codelet.symbols = symbols | ||||
| @@ -195,7 +195,7 @@ class Symbol(_Node): | |||||
| CLASS = 1 | CLASS = 1 | ||||
| VARIABLE = 2 | VARIABLE = 2 | ||||
| TYPES = {FUNCTION: "FUNCTION", CLASS: "CLASS", VARIABLE: "VARIABLE"} | TYPES = {FUNCTION: "FUNCTION", CLASS: "CLASS", VARIABLE: "VARIABLE"} | ||||
| TYPES_INV = ["functions", "classes", "variables"] | |||||
| TYPES_INV = ["functions", "classes", "vars"] | |||||
| def __init__(self, type_, name): | def __init__(self, type_, name): | ||||
| """ | """ | ||||