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 ;
|