diff options
author | jao <jao@gnu.org> | 2020-08-04 19:46:54 +0100 |
---|---|---|
committer | jao <jao@gnu.org> | 2020-08-04 19:47:33 +0100 |
commit | 7827e93cd050e0e2ef029ccc460ceb567aa25937 (patch) | |
tree | d3c32a33474f51619a4c4bcc45a482f7bf433454 /prog | |
parent | 5d9ecda7133b9186ae65779964591899420b2340 (diff) | |
download | elibs-7827e93cd050e0e2ef029ccc460ceb567aa25937.tar.gz elibs-7827e93cd050e0e2ef029ccc460ceb567aa25937.tar.bz2 |
jao-sloc moved
Diffstat (limited to 'prog')
-rw-r--r-- | prog/jao-sloc.el | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/prog/jao-sloc.el b/prog/jao-sloc.el new file mode 100644 index 0000000..1f0e9ab --- /dev/null +++ b/prog/jao-sloc.el @@ -0,0 +1,33 @@ +;; sloc.el -- LOC utilities + +;;;###autoload +(defun count-sloc-region (beg end kind) + "Count source lines of code in region (or (narrowed part of) + the buffer when no region is active). SLOC means that empty + lines and comment-only lines are not taken into consideration. + + (function by Stefan Monnier). + " + (interactive + (if (use-region-p) + (list (region-beginning) (region-end) 'region) + (list (point-min) (point-max) 'buffer))) + (save-excursion + (goto-char beg) + (let ((count 0)) + (while (< (point) end) + (cond + ((nth 4 (syntax-ppss)) ;; BOL is already inside a comment. + (let ((pos (point))) + (goto-char (nth 8 (syntax-ppss))) + (forward-comment (point-max)) + (if (< (point) pos) (goto-char pos)))) ;; Just paranoia + (t (forward-comment (point-max)))) + (setq count (1+ count)) + (forward-line)) + (when kind + (message "SLOC in %s: %s." kind count))))) + + +(provide 'jao-sloc) +;;; sloc.el ends here |