https://github.com/cosmicexplorer/cloc-emacs.git
git clone 'git://github.com/cosmicexplorer/cloc-emacs.git'
This is a small attempt at cloc integration for Emacs. The functionality is exposed through two functions: cloc
, an interactive function which performs a search through all buffers whose filepaths match the given regex (or the current buffer, as desired), and counts lines of code in them. It also exposes cloc-get-results-as-plists
, a non-interactive function which does the same thing, but parses and organizes it all into a list of plists for easier analysis.
cloc will search over all buffers, including those which do not visit files, and tramp buffers, but if the buffer is not visiting a file (and therefore does not have a pathname), cloc will only be able to match the regex to the buffer's buffer-name.
Example searches include:
\.cpp$
, for all C++ source files/foo/
, where "/foo/"
is the name of a project directory;; do this only once ever
(package-install 'cloc)
;; put this in your .emacs init file
(require 'cloc)
M-x cloc
: Interactive function to run the executable “cloc” over all buffers with pathname specified by a regex. If a prefix argument or a blank regex is given, the current buffer is “cloc'd”. cloc's entire summary output is given in the messages buffer.
cloc-get-results-as-plists
: Non-interactive function to get output of cloc results as a list of plists. Each plist contains as a property the number of files analyzed, the blank lines, the code lines, comment lines, etc. for a given language in the range of files tested. If prefix-given is set to true, this runs on the current buffer. If not, and a regex is given, it will search file-visiting buffers for file paths matching the regex. If the regex is nil, it will prompt for a regex; putting in a blank there will default to the current buffer.