David Wheeler wrote the following about sloccount. This is excerpted from a much longer TODO with many issues that have been solved by the Go port. Obviously, a general "TODO" is adding support for other computer languages; here are languages I'd like to add support for specifically: + CORBA IDL. + Create a "javascript" category. ".js" extention, "js" type. (see below for a discussion of the issues with embedded scripts) + .pco -> Oracle preprocessed Cobol Code + .pfo -> Oracle preprocessed Fortran Code + Improve Ocamlyacc, comments in yacc part are C-like, but I'm not sure about comment nesting. Here are other TODOs: * Handle scripts embedded in data. Perhaps create a category, "only the code embedded in HTML" (e.g., Javascript scripts, PHP statements, etc.). This is currently complicated - the whole program assumes that a file can be assigned a specific type, and HTML (etc.) might have multiple languages embedded in it. * Are any CGI files (.cgi) unhandled? Are files unidentified? * Improve makefile identification and counting. Currently the makefiles count "all non-blank lines"; conceivably someone might want to count only the actual directives, not the conditions under which they fire. Need to handle ".rules" too. TODO items specific to the Go implementation start here: * Support literate Haskell (*.lhs). A couple of examples have been copied into tests/ from the sloccount distribution. * How to weight EAF: https://dwheeler.com/sloccount/sloccount.html#cocomo * Detect inline assembler in C? https://en.wikipedia.org/wiki/Inline_assembler * Tokei supports the following loccount doesn't. Some might be worth adding, but see the design notes. ABAP, Agda, Alex, ASP, ASP.NET, AutoHotKey, BrightScript, Cabal, Cassius, Ceylon, Cogent, ColdFusion, ColdFusion CFScript, Coq, Device Tree, .NET Resource, Dream Maker, Edn, FEN, Fish, F*, GDScript, GLSL, Hamlet, Handlebars, Happy, HCL, HEX, HLSL, Intel HEX, Isabelle, JSX, Julius, Kakoune script, Lean, LD Script, Liquid, Lucius, Madlang, Module-Definition, MSBuild, Mustache, Nix, Not Quite Perl, Objective C++, Org, Oz, PSL Assertion, Polly, Processing, PureScript, QCL, QML, Razor, ReStructuredText, Ruby HTML, SRecode Template, Sass, Specman, Spice Netlist, SVG, SWIG, SystemVerilog, Twig, Unreal Markdown, Unreal Plugin, Unreal Project, Unreal Script, Unreal Shader, Unreal Shader Header, Ur/Web, Ur/Web Project, VB6, VBScript, Verilog Args File, Visual Studio Project, Visual Studio Solution, Vue, Wolfram, XCode Config, Xtend, Zig. * See https://github.com/hhatto/gocloc/blob/master/language.go for languages supported by gocloc. The relevant initializer, with the language/extension combinations already supported by loccount deleted, is: "Ant": "Ant", "asciidoc": "AsciiDoc", "dats": "ATS", "sats": "ATS", "hats": "ATS", "carp": "Carp", "ec": "C", "pgc": "C", "capnp": "Cap'n Proto", "cfm": "ColdFusion", "cfc": "ColdFusion CFScript", "pcc": "C++", "c++": "C++", "cu": "CUDA", "dtrace": "DTrace", "dts": "Device Tree", "dtsi": "Device Tree", "feature": "Gherkin", "fish": "Fish", "GLSL": "GLSL", // both use ext '.fs' "vs": "GLSL", "shader": "HLSL", "cg": "HLSL", "cginc": "HLSL", "hlsl": "HLSL", "lean": "Lean", "hlean": "Lean", "sc": "LISP", "pfo": "FORTRAN Legacy", "gradle": "Groovy", "hh": "C++ Header", "il": "SKILL", "ino": "Arduino Sketch", "ipynb": "Jupyter Notebook", "lds": "LD Script", "Mercury": "Mercury", // use ext '.m' "nix": "Nix", "nsi": "NSIS", "nsh": "NSIS", "nu": "Nu", "mustache": "Mustache", "plan9sh": "Plan9 Shell", "text": "Plain Text", "txt": "Plain Text", "polly": "Polly", "pxd": "Cython", "pyx": "Cython", "q": "Q", "red": "Red", "Rmd": "RMarkdown", "rhtml": "Ruby HTML", "rst": "ReStructuredText", "sass": "Sass", "scss": "Sass", "sed": "sed", "stan": "Stan", "t": "Terra", "thy": "Isabelle", "mat": "Unity-Prefab", "prefab": "Unity-Prefab", "Coq": "Coq", "csproj": "MSBuild script", "vcproj": "MSBuild script", "vim": "VimL", "vue": "Vue", "xsd": "XSD", "xslt": "XSLT", "wxs": "WiX",