factor/basis/help/lint/spaces/spaces.factor

29 lines
831 B
Factor

! Copyright (C) 2017 Alexander Ilin.
! See http://factorcode.org/license.txt for BSD license.
USING: arrays combinators.short-circuit formatting io
io.directories.search io.encodings.utf8 io.files io.pathnames
kernel math namespaces prettyprint sequences ui.gadgets.panes
vocabs.loader ;
IN: help.lint.spaces
: all-docs-files ( -- seq )
vocab-roots get [
recursive-directory-files [ "-docs.factor" tail? ] filter
] map concat ;
: lint-spaces ( -- )
all-docs-files [
dup utf8 file-lines [ 1 + 2array ] map-index
[
first [
{ [ CHAR: space = ] [ CHAR: " = ] } 1||
] trim-head
" " swap subseq?
] filter
[ drop ] [
swap <pathname> .
[ first2 swap "%d: %s\n" printf ] each
] if-empty
] each ;