diff --git a/extra/ctags/ctags-docs.factor b/extra/ctags/ctags-docs.factor index 5edaf237e8..64a645df64 100644 --- a/extra/ctags/ctags-docs.factor +++ b/extra/ctags/ctags-docs.factor @@ -1,102 +1,26 @@ -USING: help.syntax help.markup kernel prettyprint sequences strings words math ; +USING: help.markup help.syntax vocabs ; IN: ctags ARTICLE: "ctags" "Ctags file" { $emphasis "ctags" } " generates a index file of every factor word in ctags format as supported by vi and other editors. More information can be found at " { $url "http://en.wikipedia.org/wiki/Ctags" } "." { $subsections ctags - ctags-write - ctag-strings - ctag - ctag-word - ctag-path - ctag-lineno + write-ctags } ; -HELP: ctags +HELP: write-ctags { $values { "path" "a pathname string" } } { $description "Generates a index file in ctags format and stores in " { $snippet "path" } "." } { $examples { $unchecked-example "USING: ctags ;" - "\"tags\" ctags" + "\"tags\" write-ctags" "" } } ; -HELP: ctags-write -{ $values { "seq" sequence } - { "path" "a pathname string" } } -{ $description "Stores a " { $snippet "alist" } " in " { $snippet "path" } ". " { $snippet "alist" } " must be an association list with ctags format: key must be a valid word and value a sequence whose first element is a resource name and second element is a line number" } -{ $examples - { $unchecked-example - "USING: kernel ctags ;" - "{ { if { \"resource:extra/unix/unix.factor\" 91 } } } \"tags\" ctags-write" - "" - } -} -{ $notes - { $snippet "tags" } " file will contain a single line: if\\t/path/to/factor/extra/unix/unix.factor\\t91" } ; - -HELP: ctag-strings -{ $values { "alist" "an association list" } - { "seq" sequence } } -{ $description "Converts an " { $snippet "alist" } " with ctag format (a word as key and a sequence whose first element is a resource name and a second element is a line number as value) in a " { $snippet "seq" } " of ctag strings." } -{ $examples - { $unchecked-example - "USING: kernel ctags prettyprint ;" - "{ { if { \"resource:extra/unix/unix.factor\" 91 } } } ctag-strings ." - "{ \"if\\t/path/to/factor/extra/unix/unix.factor\\t91\" }" - } -} ; - -HELP: ctag -{ $values { "seq" sequence } - { "str" string } } -{ $description "Outputs a string " { $snippet "str" } " in ctag format for sequence with two elements, first one must be a valid word and second one a sequence whose first element is a resource name and second element is a line number" } -{ $examples - { $unchecked-example - "USING: kernel ctags prettyprint ;" - "{ if { \"resource:extra/unix/unix.factor\" 91 } } ctag ." - "\"if\\t/path/to/factor/extra/unix/unix.factor\\t91\"" - } -} ; - -HELP: ctag-lineno -{ $values { "ctag" sequence } - { "n" integer } } -{ $description "Provides de line number " { $snippet "n" } " from a sequence in ctag format " } -{ $examples - { $example - "USING: kernel ctags prettyprint ;" - "{ if { \"resource:extra/unix/unix.factor\" 91 } } ctag-lineno ." - "91" - } -} ; - -HELP: ctag-path -{ $values { "ctag" sequence } - { "path" string } } -{ $description "Provides a path string " { $snippet "path" } " from a sequence in ctag format" } -{ $examples - { $example - "USING: kernel ctags prettyprint ;" - "{ if { \"resource:extra/unix/unix.factor\" 91 } } ctag-path ." - "\"resource:extra/unix/unix.factor\"" - } -} ; - -HELP: ctag-word -{ $values { "ctag" sequence } - { "word" word } } -{ $description "Provides the " { $snippet "word" } " from a sequence in ctag format " } -{ $examples - { $example - "USING: kernel ctags prettyprint ;" - "{ if { \"resource:extra/unix/unix.factor\" 91 } } ctag-word ." - "if" - } -} ; - +HELP: ctags +{ $values { "alist" "ctags" } } +{ $description "Make a sequence of ctags from " { $link all-words } ", sorted by word name." } ; ABOUT: "ctags" diff --git a/extra/ctags/ctags-tests.factor b/extra/ctags/ctags-tests.factor index a5738dca6b..a7d9840f13 100644 --- a/extra/ctags/ctags-tests.factor +++ b/extra/ctags/ctags-tests.factor @@ -1,27 +1,13 @@ -USING: kernel ctags tools.test io.backend sequences arrays prettyprint ; +USING: arrays ctags.private io.backend kernel sequences +tools.test ; IN: ctags.tests -{ t } [ - 91 - { if { "resource:extra/unix/unix.factor" 91 } } ctag-lineno = -] unit-test - -{ t } [ - "resource:extra/unix/unix.factor" - { if { "resource:extra/unix/unix.factor" 91 } } ctag-path = -] unit-test - -{ t } [ - \ if - { if { "resource:extra/unix/unix.factor" 91 } } ctag-word = -] unit-test - { t } [ "if\t" "resource:extra/unix/unix.factor" normalize-path "\t91" 3append - { if { "resource:extra/unix/unix.factor" 91 } } ctag = + \ if "resource:extra/unix/unix.factor" 91 ctag = ] unit-test { t } [ "if\t" "resource:extra/unix/unix.factor" normalize-path "\t91" 3append 1array - { { if { "resource:extra/unix/unix.factor" 91 } } } ctag-strings = + { { if { "resource:extra/unix/unix.factor" 91 } } } ctags = ] unit-test diff --git a/extra/ctags/ctags.factor b/extra/ctags/ctags.factor index 4e5beabe44..cc83aa13d8 100644 --- a/extra/ctags/ctags.factor +++ b/extra/ctags/ctags.factor @@ -20,13 +20,13 @@ IN: ctags [ number>string % ] tri* ] "" make ; -: ctags ( alist -- seq ) +: make-ctags ( alist -- seq ) [ first2 ctag ] { } assoc>map ; PRIVATE> -: make-ctags ( -- ctags ) - all-words locations sort-keys ctags ; +: ctags ( -- ctags ) + all-words locations sort-keys make-ctags ; : write-ctags ( path -- ) - [ make-ctags ] dip ascii set-file-lines ; + [ ctags ] dip ascii set-file-lines ;