Documentation updated.

Fixed a minor glich with smart quotes.
Added version variable.
This commit is contained in:
Israel Chauca Fuentes
2010-04-01 01:47:08 -05:00
parent 5e8f9eacac
commit 007da2c08a
2 changed files with 109 additions and 59 deletions

View File

@@ -1,4 +1,4 @@
*delimitMate.txt* Trying to keep those beasts at bay! v.1.6
*delimitMate.txt* Trying to keep those beasts at bay! v.2.0
REFERENCE MANUAL *delimitMate*
@@ -11,8 +11,9 @@
2. Functionality___________________________|delimitMateFunctionality|
2.1 Automatic closing & exiting________|delimitMateAutoClose|
2.2 Expansion of space and CR__________|delimitMateExpansion|
2.3 Deletion of empty pairs____________|delimitMateBackspace|
2.3 Backspace__________________________|delimitMateBackspace|
2.4 Visual wrapping____________________|delimitMateVisualWrapping|
2.5 Smart Quotes_______________________|delimitMateSmartQuotes|
3. Customization___________________________|delimitMateOptions|
3.1 Option summary_____________________|delimitMateOptionSummary|
3.2 Options details____________________|delimitMateOptionDetails|
@@ -33,12 +34,15 @@ When automatic closing is enabled, if an opening delimiter is inserted
delimitMate inserts the closing pair and places the cursor between them. When
automatic closing is disabled, no closing delimiters is inserted by
delimitMate, but if a pair of delimiters is typed, the cursor is placed in the
middle. Also, to get out of a pair of delimiters just type the right delimiter
and the cursor will jump to the right.
middle. Also, to get out of a pair of delimiters just type shift+tab or the
right delimiter and the cursor will jump to the right.
If the cursor is inside an empty pair of delimiters <Space> and <CR> can be
expanded to follow your coding style, you just need to define a couple of
options with the desired mappings for them.
If the cursor is inside an empty pair of delimiters, typing <Space> will
insert two spaces and the cursor will be placed in the middle; typing <CR>
will insert to car retunrs and place the cursor in the middle line, between
the delimiters.
All of the operations are undo/redo-wise safe.
==============================================================================
2. FUNCTIONALITY *delimitMateFunctionality*
@@ -55,7 +59,7 @@ When the cursor is inside an empty pair or located next to the left of a
closing delimiter, the cursor is placed outside the pair to the right of the
closing delimiter.
Unless |'b:delimitMate_matchpairs'| and |'b:delimitMate_quotes'|is set, this
Unless |'delimitMate_matchpairs'| or |'delimitMate_quotes'|are set, this
script uses the values in '&matchpairs' to identify the pairs, and ", ' and `
for quotes respectively.
@@ -68,47 +72,55 @@ With auto-close: >
( | (|)
|
() | ()|
|
(<S-Tab> | ()|
<
Without auto-close: >
Type | You get
====================
() | (|)
|
()) | ()|
Type | You get
=====================
() | (|)
-|
()) | ()|
-|
()<S-Tab> | ()|
<
------------------------------------------------------------------------------
2.2 EXPANSION OF SPACE AND CAR RETURN *delimitMateExpansion*
When the cursor is inside an empty pair of delimiters, <Space> and <CR> can be
expanded to follow your coding style with |'b:delimitMate_expand_space'| and
|'b:delimitMate_expand_cr'|. e.g. (cursor represented by a "|"):
expanded, see |'delimitMate_expand_space'| and
|'delimitMate_expand_cr'|:
Expand <Space> to: >
<Space><Space><Left> | You get
====================================
(|) | ( | )
<Space><Space><Left> | You get
====================================
(|) | ( | )
<
Expand <CR> to: >
<CR><CR><Up> | You get
============================
(|) | (
| |
| )
<CR><CR><Up> | You get
============================
(|) | (
| |
| )
<
------------------------------------------------------------------------------
2.3 DELETION OF EMPTY PAIR *delimitMateBackspace*
2.3 BACKSPACE *delimitMateBackspace*
If you press backspace inside an empty pair, both delimiters are deleted.
If you press backspace inside an empty pair, both delimiters are deleted. If
you type shift + backspace instead, only the closing delimiter will be
deleted.
e.g.: >
e.g. typing at the "|": >
Before | After
====================================
call expand(|) | call expand|
What | Before | After
==============================================
<BS> | call expand(|) | call expand|
---------|------------------|-----------------
<S-BS> | call expand(|) | call expand(|
<
------------------------------------------------------------------------------
@@ -122,9 +134,26 @@ will be welcome.
e.g. (selection represented between square brackets): >
Selected text | After \"
=============================================
An [absurd] example! | An "absurd" example!
Selected text | After \"
=============================================
An [absurd] example! | An "absurd" example!
<
------------------------------------------------------------------------------
2.5 SMART QUOTES *delimitMateSmartQuotes*
Only one quote will be inserted following a quote, a "\" or an alphanumeric
character. This should cover closing quotes, escaped quotes and apostrophes.
Except for apostrophes, this feature can be disabled setting the option
|'delimitMate_smart_quotes'| to 0.
e.g. typing at the "|": >
What | Before | After
=======================================
" | "String| | "String"|
" | let i = "| | let i = "|"
' | I| | I'|
<
==============================================================================
3. CUSTOMIZATION *delimitMateOptions*
@@ -149,17 +178,18 @@ specific file types, see |delimitMateOptionDetails| for examples.
|'delimitMate_visual_leader'| Sets the leader to be used in visual mode.
|'delimitMate_expand_cr'| Sets the expansion for <CR> inside an empty
pair of matching delimiters or quotes.
|'delimitMate_expand_cr'| Turns on/off the expansion of <CR>.
|'delimitMate_expand_space'| Sets the expansion for <Space> inside an
empty pair of matching delimiters or quotes.
|'delimitMate_expand_space'| Turns on/off the expansion of <Space>.
|'delimitMate_excluded_ft'| Turns off the script for the given file types.
|'delimitMate_apostrophes'| Tells delimitMate how it should "fix"
balancing of single quotes when used as
apostrophes.
apostrophes. NOTE: Not needed any more, kept
for compatibility with older versions.
|'delimitMate_smart_quotes'| Turns on/off the "smart quotes" feature.
------------------------------------------------------------------------------
3.2 OPTIONS DETAILS *delimitMateOptionDetails*
@@ -168,8 +198,9 @@ Add the shown lines to your vimrc file in order to set the below options.
Local options take precedence over global ones and can be used along with
autocmd to modify delimitMate's behavior for specific file types.
*'loaded_delimitMate'*
*'b:loaded_delimitMate'*
------------------------------------------------------------------------------
*'loaded_delimitMate'*
*'b:loaded_delimitMate'*
This option prevents delimitMate from loading.
e.g.: >
let loaded_delimitMate = 1
@@ -226,14 +257,14 @@ e.g: >
------------------------------------------------------------------------------
*'delimitMate_expand_cr'*
*'b:delimitMate_expand_cr'*
Values: A key mapping. ~
Default: "\<CR>" ~
Values: 1 or 0 ~
Default: 0 ~
The value of this option will be used to expand the car return character when
typed inside an empty delimiter pair. Read |delimitMateExpansion| for details.
This option turns on/off the expansion of <CR>. Read |delimitMateExpansion|
for details.
e.g.: >
let b:delimitMate_expand_cr = "\<CR>\<CR>\<Up>"
au FileType mail let b:delimitMate_expand_cr = "\<CR>
au FileType mail let b:delimitMate_expand_cr = "\<CR>"
<
------------------------------------------------------------------------------
*'delimitMate_expand_space'*
@@ -241,8 +272,8 @@ e.g.: >
Values: A key mapping. ~
Default: "\<Space>" ~
The value of this option will be used to expand the space character when typed
inside an empty delimiter pair. Read |delimitMateExpansion| for details.
This option turns on/off the expansion of <Space>. Read |delimitMateExpansion|
for details.
e.g.: >
let delimitMate_expand_space = "\<Space>\<Space>\<Left>"
au FileType tcl let b:delimitMate_expand_space = "\<Space>"
@@ -253,15 +284,17 @@ Values: A string of file type names separated by single commas. ~
Default: Empty. ~
This options turns delimitMate off for the listed file types, use this option
only if don't want any of the features it provides.
only if you don't want any of the features it provides on those file types.
e.g.: >
let delimitMate_excluded_ft = "mail,txt"
<
------------------------------------------------------------------------------
*'delimitMate_apostrophes'*
Values: Strings separated by ":". ~
Default: "n't:'s:'re:'d:'ll:'ve:s'" ~
Default: No longer used. ~
NOTE: This feature is turned off by default, it's been kept for compatibility
with older version, read |delimitMateSmartQuotes| for details.
If auto-close is enabled, this option tells delimitMate how to try to fix the
balancing of single quotes when used as apostrophes. The values of this option
are strings of text where a single quote would be used as an apostrophe (e.g.:
@@ -390,6 +423,24 @@ This script was inspired by the auto-completion of delimiters of TextMate.
8. HISTORY *delimitMateHistory*
Version Date Release notes ~
|---------|------------|-----------------------------------------------------|
2.0 2010-04-01 New:
- All features are redo/undo-wise safe.
- A single quote typed after an alphanumeric
character is considered an apostrophe and one
single quote is inserted.
- A quote typed after another quote inserts a single
quote and the cursor jumps to the middle.
- <S-Tab> jumps out of any empty pair.
- <CR> and <Space> expansions are fixed, but the
functions used for it are global and can be used in
custom mappings. The previous system is still
active if you have any of the expansion options
set.
- <S-Backspace> deletes the closing delimiter.
Fixed:
- s:vars were being used to store buffer options.
|---------|------------|-----------------------------------------------------|
1.6 2009-10-10 Now delimitMate tries to fix the balancing of single
quotes when used as apostrophes. You can read

View File

@@ -1,6 +1,6 @@
" ============================================================================
" File: delimitMate.vim
" Version: 1.7
" Version: 2.0
" Description: This plugin tries to emulate the auto-completion of delimiters
" that TextMate provides.
" Maintainer: Israel Chauca F. <israelchauca@gmail.com>
@@ -38,6 +38,7 @@ if v:version < 700
endif
let s:loaded_delimitMate = 1 " }}}
let delimitMate_version = '2.0'
function! s:Init() "{{{
@@ -109,8 +110,8 @@ function! s:Init() "{{{
" delimitMate_visual_leader {{{
if !exists("b:delimitMate_visual_leader") && !exists("g:delimitMate_visual_leader")
let b:delimitMate_visual_leader = exists('g:maplocalleader') ? g:maplocalleader :
\ exists('mapleader') ? g:mapleader : "\\"
let b:delimitMate_visual_leader = exists('b:maplocalleader') ? b:maplocalleader :
\ exists('g:mapleader') ? g:mapleader : "\\"
elseif !exists("b:delimitMate_visual_leader") && exists("g:delimitMate_visual_leader")
let b:delimitMate_visual_leader = g:delimitMate_visual_leader
else
@@ -327,15 +328,13 @@ function! s:QuoteDelim(char) "{{{
elseif line[col + 1] == a:char
" Get out of the string.
return s:WriteBefore(a:char)
elseif ((line[col] == a:char && line[col + 1 ] != a:char)
\ || line[col] =~ '[a-zA-Z0-9]')
\ && b:delimitMate_smart_quotes
" Seems like we have an unbalanced quote or a closing quote,
" insert one quotation mark and jump to tthe middle.
return s:WriteAfter(a:char)
elseif line[col] =~ '[a-zA-Z0-9]' && a:char == "'"
" Seems like an apostrophe, insert a single quote.
elseif (line[col] =~ '[a-zA-Z0-9]' && a:char == "'") ||
\(line[col] =~ '[a-zA-Z0-9]' && b:delimitMate_smart_quotes)
" Seems like an apostrophe or a closing, insert a single quote.
return a:char
elseif (line[col] == a:char && line[col + 1 ] != a:char) && b:delimitMate_smart_quotes
" Seems like we have an unbalanced quote, insert one quotation mark and jump to the middle.
return s:WriteAfter(a:char)
else
" Insert a pair and jump to the middle.
call s:WriteAfter(a:char)