Merge branch 'master' of git://factorcode.org/git/factor
commit
906e6f73dc
core/io
misc
|
@ -90,10 +90,10 @@ SYMBOL: error-stream
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: each-stream-line ( stream quot -- )
|
: each-stream-line ( ... stream quot: ( ... line -- ... ) -- ... )
|
||||||
swap [ stream-readln ] curry each-morsel ; inline
|
swap [ stream-readln ] curry each-morsel ; inline
|
||||||
|
|
||||||
: each-line ( quot -- )
|
: each-line ( ... quot: ( ... line -- ... ) -- ... )
|
||||||
input-stream get swap each-stream-line ; inline
|
input-stream get swap each-stream-line ; inline
|
||||||
|
|
||||||
: stream-lines ( stream -- seq )
|
: stream-lines ( stream -- seq )
|
||||||
|
@ -102,21 +102,21 @@ PRIVATE>
|
||||||
: lines ( -- seq )
|
: lines ( -- seq )
|
||||||
input-stream get stream-lines ; inline
|
input-stream get stream-lines ; inline
|
||||||
|
|
||||||
|
: each-stream-block ( ... stream quot: ( ... block -- ... ) -- ... )
|
||||||
|
swap 65536 swap [ stream-read-partial ] 2curry each-morsel ; inline
|
||||||
|
|
||||||
|
: each-block ( ... quot: ( ... block -- ... ) -- ... )
|
||||||
|
input-stream get swap each-stream-block ; inline
|
||||||
|
|
||||||
: stream-contents ( stream -- seq )
|
: stream-contents ( stream -- seq )
|
||||||
[
|
[
|
||||||
[ [ 65536 swap stream-read-partial dup ] curry [ ] produce nip ]
|
[ [ ] collector [ each-stream-block ] dip { } like ]
|
||||||
[ stream-element-exemplar concat-as ] bi
|
[ stream-element-exemplar concat-as ] bi
|
||||||
] with-disposal ;
|
] with-disposal ;
|
||||||
|
|
||||||
: contents ( -- seq )
|
: contents ( -- seq )
|
||||||
input-stream get stream-contents ; inline
|
input-stream get stream-contents ; inline
|
||||||
|
|
||||||
: each-stream-block ( stream quot: ( block -- ) -- )
|
|
||||||
swap [ 8192 swap stream-read-partial ] curry each-morsel ; inline
|
|
||||||
|
|
||||||
: each-block ( quot: ( block -- ) -- )
|
|
||||||
input-stream get swap each-stream-block ; inline
|
|
||||||
|
|
||||||
: stream-copy ( in out -- )
|
: stream-copy ( in out -- )
|
||||||
[ [ [ write ] each-block ] with-output-stream ]
|
[ [ [ write ] each-block ] with-output-stream ]
|
||||||
curry with-input-stream ;
|
curry with-input-stream ;
|
||||||
|
|
|
@ -12,7 +12,7 @@ IN: factor.vim.fgen
|
||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Factor
|
" Language: Factor
|
||||||
" Maintainer: Alex Chapman <chapman.alex@gmail.com>
|
" Maintainer: Alex Chapman <chapman.alex@gmail.com>
|
||||||
" Last Change: 2011 Mar 18
|
" Last Change: 2011 Mar 21
|
||||||
" To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" <fhtml> call-template
|
" To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" <fhtml> call-template
|
||||||
|
|
||||||
" For version 5.x: Clear all syntax items
|
" For version 5.x: Clear all syntax items
|
||||||
|
@ -150,8 +150,9 @@ syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingle
|
||||||
" LIBRARY:
|
" LIBRARY:
|
||||||
"#\ "
|
"#\ "
|
||||||
|
|
||||||
syn region factorString start=/\<"/ skip=/\\"/ end=/"/
|
syn match factorEscape /\\\([\\stnr0e\"]\|u\x\{6}\|u{\S\+}\)/ contained display
|
||||||
syn region factorTriString start=/\<"""/ skip=/\\"/ end=/"""/
|
syn region factorString start=/\<"/ skip=/\\"/ end=/"/ contains=factorEscape
|
||||||
|
syn region factorTriString start=/\<"""/ skip=/\\"/ end=/"""/ contains=factorEscape
|
||||||
syn region factorSbuf start=/\<[-a-zA-Z0-9]\+"\>/ skip=/\\"/ end=/"/
|
syn region factorSbuf start=/\<[-a-zA-Z0-9]\+"\>/ skip=/\\"/ end=/"/
|
||||||
|
|
||||||
syn region factorMultiString matchgroup=factorMultiStringDelims start=/\<STRING:\s\+\S\+\>/ end=/^;$/ contains=factorMultiStringContents
|
syn region factorMultiString matchgroup=factorMultiStringDelims start=/\<STRING:\s\+\S\+\>/ end=/^;$/ contains=factorMultiStringContents
|
||||||
|
@ -235,6 +236,7 @@ if version >= 508 || !exists("did_factor_syn_inits")
|
||||||
HiLink factorPrivateMethodDelims Special
|
HiLink factorPrivateMethodDelims Special
|
||||||
HiLink factorPGenericDelims Special
|
HiLink factorPGenericDelims Special
|
||||||
HiLink factorPGenericNDelims Special
|
HiLink factorPGenericNDelims Special
|
||||||
|
HiLink factorEscape SpecialChar
|
||||||
HiLink factorString String
|
HiLink factorString String
|
||||||
HiLink factorTriString String
|
HiLink factorTriString String
|
||||||
HiLink factorSbuf String
|
HiLink factorSbuf String
|
||||||
|
@ -317,4 +319,4 @@ endif
|
||||||
|
|
||||||
let b:current_syntax = "factor"
|
let b:current_syntax = "factor"
|
||||||
|
|
||||||
" vim: syntax=vim
|
" vim:set ft=vim sw=4:
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
Vim support for Factor
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
This directory contains various support files that make editing Factor code
|
|
||||||
more pleasant in Vim. The file-layout exactly matches the Vim runtime
|
|
||||||
structure, so you can install them by copying the contents of this directory
|
|
||||||
into ~/.vim/ or the equivalent path on other platforms (Open Vim and type
|
|
||||||
":help 'runtimepath'" for details).
|
|
||||||
|
|
||||||
The current set of files is as follows:
|
|
||||||
|
|
||||||
ftdetect/factor.vim
|
|
||||||
Teach Vim when to load Factor support files.
|
|
||||||
ftplugin/factor_settings.vim
|
|
||||||
Teach Vim to follow the Factor Coding Style guidelines.
|
|
||||||
plugin/factor.vim
|
|
||||||
Teach Vim some commands for navigating Factor source code. See below.
|
|
||||||
syntax/factor.vim
|
|
||||||
Syntax highlighting for Factor code.
|
|
||||||
|
|
||||||
The "plugin/factor.vim" file implements the following commands for
|
|
||||||
navigating Factor source:
|
|
||||||
|
|
||||||
:FactorVocab factor.vocab.name
|
|
||||||
Opens the source file implementing the "factor.vocab.name"
|
|
||||||
vocabulary.
|
|
||||||
:NewFactorVocab factor.vocab.name
|
|
||||||
Creates a new factor vocabulary under the working vocabulary root.
|
|
||||||
:FactorVocabImpl
|
|
||||||
Opens the main implementation file for the current vocabulary
|
|
||||||
(name.factor). The keyboard shortcut "\fi" is bound to this
|
|
||||||
command.
|
|
||||||
:FactorVocabDocs
|
|
||||||
Opens the documentation file for the current vocabulary
|
|
||||||
(name-docs.factor). The keyboard shortcut "\fd" is bound to this
|
|
||||||
command.
|
|
||||||
:FactorVocabTests
|
|
||||||
Opens the unit test file for the current vocabulary
|
|
||||||
(name-tests.factor). The keyboard shortcut "\ft" is bound to this
|
|
||||||
command.
|
|
||||||
|
|
||||||
In order for the ":FactorVocab" command to work, you'll need to set some
|
|
||||||
variables in your vimrc file:
|
|
||||||
g:FactorRoot
|
|
||||||
This variable should be set to the root of your Factor
|
|
||||||
installation. The default value is "~/factor".
|
|
||||||
g:FactorVocabRoots
|
|
||||||
This variable should be set to a list of Factor vocabulary roots.
|
|
||||||
The paths may be either relative to g:FactorRoot or absolute paths.
|
|
||||||
The default value is ["core", "basis", "extra", "work"].
|
|
||||||
g:FactorNewVocabRoot
|
|
||||||
This variable should be set to the vocabulary root in which
|
|
||||||
vocabularies created with NewFactorVocab should be created. The
|
|
||||||
default value is "work".
|
|
||||||
|
|
||||||
Note: The syntax-highlighting file is automatically generated to include the
|
|
||||||
names of all the vocabularies Factor knows about. To regenerate it manually,
|
|
||||||
run the following code in the listener:
|
|
||||||
|
|
||||||
"editors.vim.generate-syntax" run
|
|
||||||
|
|
||||||
...or run it from the command line:
|
|
||||||
|
|
||||||
factor -run=editors.vim.generate-syntax
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
Vim support for Factor
|
||||||
|
======================
|
||||||
|
|
||||||
|
This directory contains various support files that make editing Factor code
|
||||||
|
more pleasant in Vim.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
The file-layout exactly matches the Vim runtime
|
||||||
|
structure, so you can install them by copying the contents of this directory
|
||||||
|
into `~/.vim/` or the equivalent path on other platforms (Open Vim and type
|
||||||
|
`:help 'runtimepath'` for details).
|
||||||
|
|
||||||
|
## File organization
|
||||||
|
|
||||||
|
The current set of files is as follows:
|
||||||
|
|
||||||
|
* ftdetect/factor.vim - Teach Vim when to load Factor support files.
|
||||||
|
* ftplugin/factor_settings.vim - Teach Vim to follow the Factor Coding Style guidelines.
|
||||||
|
* plugin/factor.vim - Teach Vim some commands for navigating Factor source code. See below.
|
||||||
|
* syntax/factor.vim - Syntax highlighting for Factor code.
|
||||||
|
|
||||||
|
## Commands
|
||||||
|
|
||||||
|
The `plugin/factor.vim` file implements the following commands for navigating Factor source.
|
||||||
|
|
||||||
|
### :FactorVocab factor.vocab.name
|
||||||
|
|
||||||
|
Opens the source file implementing the `factor.vocab.name` vocabulary.
|
||||||
|
|
||||||
|
### :NewFactorVocab factor.vocab.name
|
||||||
|
|
||||||
|
Creates a new factor vocabulary under the working vocabulary root.
|
||||||
|
|
||||||
|
### :FactorVocabImpl
|
||||||
|
|
||||||
|
Opens the main implementation file for the current vocabulary
|
||||||
|
(name.factor). The keyboard shortcut `<Leader>fi` is bound to this command.
|
||||||
|
|
||||||
|
### :FactorVocabDocs
|
||||||
|
|
||||||
|
Opens the documentation file for the current vocabulary
|
||||||
|
(name-docs.factor). The keyboard shortcut `<Leader>fd` is bound to this command.
|
||||||
|
|
||||||
|
### :FactorVocabTests
|
||||||
|
|
||||||
|
Opens the unit test file for the current vocabulary
|
||||||
|
(name-tests.factor). The keyboard shortcut `<Leader>ft` is bound to this command.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
In order for the `:FactorVocab` command to work, you'll need to set some variables in your vimrc file.
|
||||||
|
|
||||||
|
### g:FactorRoot
|
||||||
|
|
||||||
|
This variable should be set to the root of your Factor
|
||||||
|
installation. The default value is `~/factor`.
|
||||||
|
|
||||||
|
### g:FactorVocabRoots
|
||||||
|
|
||||||
|
This variable should be set to a list of Factor vocabulary roots.
|
||||||
|
The paths may be either relative to g:FactorRoot or absolute paths.
|
||||||
|
The default value is `["core", "basis", "extra", "work"]`.
|
||||||
|
|
||||||
|
### g:FactorNewVocabRoot
|
||||||
|
|
||||||
|
This variable should be set to the vocabulary root in which
|
||||||
|
vocabularies created with NewFactorVocab should be created.
|
||||||
|
The default value is `work`.
|
||||||
|
|
||||||
|
## Note
|
||||||
|
|
||||||
|
The syntax-highlighting file is automatically generated to include the
|
||||||
|
names of all the vocabularies Factor knows about. To regenerate it manually,
|
||||||
|
run the following code in the listener:
|
||||||
|
|
||||||
|
"editors.vim.generate-syntax" run
|
||||||
|
|
||||||
|
or run it from the command line:
|
||||||
|
|
||||||
|
factor -run=editors.vim.generate-syntax
|
|
@ -1,7 +1,7 @@
|
||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Factor
|
" Language: Factor
|
||||||
" Maintainer: Alex Chapman <chapman.alex@gmail.com>
|
" Maintainer: Alex Chapman <chapman.alex@gmail.com>
|
||||||
" Last Change: 2011 Mar 18
|
" Last Change: 2011 Mar 21
|
||||||
" To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" <fhtml> call-template
|
" To run: USING: html.templates html.templates.fhtml ; "resource:misc/factor.vim.fgen" <fhtml> call-template
|
||||||
|
|
||||||
" For version 5.x: Clear all syntax items
|
" For version 5.x: Clear all syntax items
|
||||||
|
@ -137,8 +137,9 @@ syn cluster factorWordOps contains=factorConstant,factorAlias,factorSingle
|
||||||
" LIBRARY:
|
" LIBRARY:
|
||||||
"#\ "
|
"#\ "
|
||||||
|
|
||||||
syn region factorString start=/\<"/ skip=/\\"/ end=/"/
|
syn match factorEscape /\\\([\\stnr0e\"]\|u\x\{6}\|u{\S\+}\)/ contained display
|
||||||
syn region factorTriString start=/\<"""/ skip=/\\"/ end=/"""/
|
syn region factorString start=/\<"/ skip=/\\"/ end=/"/ contains=factorEscape
|
||||||
|
syn region factorTriString start=/\<"""/ skip=/\\"/ end=/"""/ contains=factorEscape
|
||||||
syn region factorSbuf start=/\<[-a-zA-Z0-9]\+"\>/ skip=/\\"/ end=/"/
|
syn region factorSbuf start=/\<[-a-zA-Z0-9]\+"\>/ skip=/\\"/ end=/"/
|
||||||
|
|
||||||
syn region factorMultiString matchgroup=factorMultiStringDelims start=/\<STRING:\s\+\S\+\>/ end=/^;$/ contains=factorMultiStringContents
|
syn region factorMultiString matchgroup=factorMultiStringDelims start=/\<STRING:\s\+\S\+\>/ end=/^;$/ contains=factorMultiStringContents
|
||||||
|
@ -222,6 +223,7 @@ if version >= 508 || !exists("did_factor_syn_inits")
|
||||||
HiLink factorPrivateMethodDelims Special
|
HiLink factorPrivateMethodDelims Special
|
||||||
HiLink factorPGenericDelims Special
|
HiLink factorPGenericDelims Special
|
||||||
HiLink factorPGenericNDelims Special
|
HiLink factorPGenericNDelims Special
|
||||||
|
HiLink factorEscape SpecialChar
|
||||||
HiLink factorString String
|
HiLink factorString String
|
||||||
HiLink factorTriString String
|
HiLink factorTriString String
|
||||||
HiLink factorSbuf String
|
HiLink factorSbuf String
|
||||||
|
@ -304,4 +306,4 @@ endif
|
||||||
|
|
||||||
let b:current_syntax = "factor"
|
let b:current_syntax = "factor"
|
||||||
|
|
||||||
" vim: syntax=vim
|
" vim:set ft=vim sw=4:
|
||||||
|
|
Loading…
Reference in New Issue