29 lines
831 B
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 ;
|