1019 Commits

Author SHA1 Message Date
85ddb00dc9 Update submodule 2024-08-05 13:23:29 +08:00
Yasuhiro Matsumoto
3fb2f63799 support avif for image encode/decode 2024-06-14 23:09:53 +09:00
mattn
def5d57a1a Merge pull request #533 from eight04/dev-update-tag-name
Fix: make updateTag work with tag name
2021-12-05 00:38:44 +09:00
eight04
f4c999bdf2 Fix: updateTag doesn't support hyphen 2021-12-04 22:28:25 +08:00
eight04
f960b9bd59 Fix: make updateTag work with tag name 2021-12-04 00:23:16 +08:00
mattn
1b7e460de0 Merge pull request #523 from snxx-lppxx/master
Update README.mkd
2021-09-30 23:47:58 +09:00
snxx
f0df5fa676 Update README.mkd 2021-09-30 19:26:28 +05:00
mattn
baf5546734 Merge pull request #492 from nhooyr/master
Make mappings silent by default
2021-09-30 00:57:53 +09:00
mattn
58e24035cc Merge pull request #514 from thecodemensch/master
Update README.mkd for responsive snippet
2021-09-30 00:46:54 +09:00
mattn
4ea41b2cba Merge pull request #522 from skylarmb/patch-1
Update README.mkd
2021-09-30 00:44:43 +09:00
snxx
f2a80ddfa2 Update README.mkd 2021-09-29 00:03:02 +05:00
snxx
413fb145fe Update README.mkd 2021-09-29 00:01:22 +05:00
Skylar
8b079dcf6e Update README.mkd
Fixes broken github pages links. github.com urls for github pages sites are deprecated as of earlier this year and should be replaced with github.io
2021-09-08 09:17:29 -07:00
Yasuhiro Matsumoto
46e60676f2 Add note
Closes #148
2021-04-17 21:42:11 +09:00
mattn
1f5daf6810 Merge pull request #515 from ChristianChiarulli/master
Support javascriptreact and typescriptreact filetypes fixes: #505
2021-03-20 21:22:08 +09:00
Chris
15216aa849 Add support for javascriptreact and typescriptreact filetypes fixes: #505 2021-03-19 22:19:26 -04:00
Ibrahim
209220ee02 Updated README.mkd for responsiveness snippet 2021-03-03 12:34:22 +05:30
ibrahim
fc547c48a8 Added meta tag for responsiveness. 2021-03-02 16:31:33 +05:30
Yasuhiro Matsumoto
60930a968d Fix syntax 2020-10-22 08:22:30 +09:00
mattn
8255d7d0b9 Merge pull request #502 from mattn/use-autocmd
Use autocmd to apply syntax styledEmmetAbbreviation
2020-10-20 18:23:42 +09:00
Yasuhiro Matsumoto
9c526a43d6 Use autocmd to apply syntax styledEmmetAbbreviation 2020-10-20 17:36:24 +09:00
mattn
a46a282c5e Merge pull request #501 from gitusp/support-styled-components
Support CSS in JS syntax
2020-10-19 12:20:26 +09:00
gitusp
f8e6431776 Add support for CSS in JS annotations like css` and styled.*` 2020-10-19 10:34:50 +09:00
Anmol Sethi
1533dd03a1 Make mappings silent by default
Closes #361
2020-07-29 12:19:11 -04:00
Yasuhiro Matsumoto
dc6cb4fd07 Remove atttribues with setting v:null in default_attributes 2020-06-21 00:27:03 +09:00
mattn
76285f8ec4 Merge pull request #484 from grohiro/boolean_attr
Fix updateTag() boolean attribute
2020-05-04 11:03:35 +09:00
grohiro
e4d9455d5a Fix updateTag with boolean attr 2020-05-04 01:18:35 +09:00
mattn
c7643e5b61 Merge pull request #477 from zorro/fix445
fix for #445
2020-03-07 20:01:46 +09:00
Arun
e9033d0d88 fix for #445 2020-03-07 15:11:56 +05:30
mattn
5f559fae12 Update FUNDING.yml 2019-10-08 17:37:10 +09:00
mattn
10b3746ecb Merge pull request #468 from r6eve/fix/minor-typo
Fix minor typo
2019-08-27 18:25:18 +09:00
r6eve
61deeebdc9 Fix minor typo 2019-08-27 18:15:14 +09:00
Yasuhiro Matsumoto
37203af2b3 Add LICENSE 2019-08-27 15:06:44 +09:00
mattn
461700696e Merge pull request #462 from baxter2/installation-pathogen
explicit installation instructions for pathogen
2019-07-24 15:34:43 +09:00
baxter2
ef1d557b59 explicit installation instructions for pathogen 2019-07-24 15:55:53 +10:00
Yasuhiro Matsumoto
15ef997d4d Implement imageEncode on CSS 2019-06-24 23:35:52 +09:00
Yasuhiro Matsumoto
f4afd031a3 Fix next item in CSS 2019-06-24 23:20:54 +09:00
Yasuhiro Matsumoto
5a7c7930c6 Fix mergeLines() 2019-06-20 00:32:53 +09:00
Yasuhiro Matsumoto
3f53d7b637 Add mergeLines() 2019-06-20 00:05:36 +09:00
Yasuhiro Matsumoto
9f854c868e Add mergeLines() 2019-06-20 00:02:06 +09:00
Yasuhiro Matsumoto
6ee9d6d417 rename 2019-06-19 23:39:03 +09:00
Yasuhiro Matsumoto
685359e892 Merge branch 'master' of https://github.com/mattn/emmet-vim 2019-06-19 14:56:36 +09:00
Yasuhiro Matsumoto
b9f1ae467b Fix remove tag 2019-06-19 01:39:37 +09:00
Yasuhiro Matsumoto
32dd6d3064 Fix split/join tag 2019-06-19 01:08:51 +09:00
Yasuhiro Matsumoto
50b44d90c9 Fix hang-up while split/join tag 2019-06-19 00:46:33 +09:00
Yasuhiro Matsumoto
7b08b89d7d Implement image encode 2019-06-18 15:44:00 +09:00
Yasuhiro Matsumoto
d02023cd7a Fix unit expanding 2019-06-18 03:56:28 +09:00
Yasuhiro Matsumoto
6039842751 Fix unit expanding 2019-06-18 03:49:40 +09:00
Yasuhiro Matsumoto
dad174f359 auto is not unit name 2019-06-18 03:25:51 +09:00
Yasuhiro Matsumoto
47c28892d9 Fix unit expanding 2019-06-18 03:22:31 +09:00
Yasuhiro Matsumoto
192d22fe69 Handle ex 2019-06-18 03:10:06 +09:00
Yasuhiro Matsumoto
24fbb0aef7 Fix move next/prev 2019-06-07 15:18:29 +09:00
mattn
0414b53a23 Update FUNDING.yml 2019-05-23 23:51:11 +09:00
mattn
369a5420f0 Update FUNDING.yml 2019-05-23 23:49:26 +09:00
mattn
456d094ef3 Create FUNDING.yml 2019-05-23 23:43:41 +09:00
mattn
633320d968 Merge pull request #459 from mattn/fix-dot
Fix unittest
2019-05-23 20:23:08 +09:00
Yasuhiro Matsumoto
5531b23f20 Fix unittest 2019-05-23 20:20:45 +09:00
Yasuhiro Matsumoto
b7cc3a743f Fix emmet#isExpandable()
Fixes #458
2019-05-23 18:52:17 +09:00
mattn
758421535f Merge pull request #456 from mattn/fix-balance
Fix balance tag
2019-05-19 23:28:37 +09:00
Yasuhiro Matsumoto
6a6dc6e093 Fix balance tag 2019-05-19 23:26:36 +09:00
mattn
97b0b6c643 Merge pull request #455 from M4R7iNP/fix-root-filetype-detection
get extends recursively, minor additional fixes for pug and jsx
2019-05-19 22:03:15 +09:00
Martin Pedersen
f8fc806a61 get extends recursively, minor additional fixes for pug and jsx 2019-05-09 01:14:00 +02:00
Yasuhiro Matsumoto
ae7d31f290 Fixes #452, #448 2019-04-16 00:21:28 +09:00
Yasuhiro Matsumoto
d698f16587 Expand lorem with div only when there is multiplier. 2019-02-11 00:04:31 +09:00
mattn
19f2821b7b Merge pull request #447 from mattn/ignore-embeded
Add ignore_embeded_filetype since slim filetype is confusing to html.
2019-01-29 01:03:24 +09:00
Yasuhiro Matsumoto
922784dad6 Fix Makefile 2019-01-29 00:57:37 +09:00
Yasuhiro Matsumoto
eb8a4782ba Fix css 2019-01-29 00:54:17 +09:00
Yasuhiro Matsumoto
b79f9128d3 Fix test 2019-01-29 00:41:06 +09:00
Yasuhiro Matsumoto
5d6870c0af Add ignore_embeded_filetype 2019-01-29 00:15:23 +09:00
Yasuhiro Matsumoto
5fc2cc0fae xenial 2019-01-29 00:09:20 +09:00
Yasuhiro Matsumoto
d99b422a39 Add ignore_embeded_filetype since slim filetype is confusing to html. 2019-01-28 23:59:03 +09:00
mattn
3720be60fb Merge pull request #446 from soywod/master
Add support for TypeScript
2019-01-28 23:50:20 +09:00
Clément DOUIN
313e241932 add support for typescript 2019-01-28 14:21:25 +01:00
Yasuhiro Matsumoto
19e3240bf3 Fix getFileType 2019-01-16 21:57:43 +09:00
mattn
e6fb10d22a Merge pull request #416 from rgalbo/patch-1
fix a broken markdown heading
2018-11-29 15:56:27 +09:00
mattn
d2a7edf1ad Merge pull request #440 from tyru/add-gitlink
[Fix] Add gitlink of 'docs'
2018-11-29 15:55:44 +09:00
tyru
37ac8c3421 fix: add gitlink of 'docs'
.gitmodules has 'docs' entry, but no gitlink is committed in this
repository.
So volt (more specifically, go-git library) results in the error.
https://github.com/vim-volt/volt/issues/260
2018-11-10 13:46:15 +09:00
mattn
7492853a59 Merge pull request #439 from mattn/fix436
add dot into pattern of attributes
2018-11-09 15:44:46 +09:00
Yasuhiro Matsumoto
88ecfac350 add dot into pattern of attributes
Fixes #436
2018-11-09 15:42:39 +09:00
mattn
7a4bf3463e Merge pull request #433 from jpsouzasilva/prioritize-syntax
Prioritizes syntax at the current cursor position for determining the file type
2018-10-06 13:36:39 +09:00
jpsouzasilva
a33b7273a1 Removes extra spaces at line 523 2018-09-07 22:22:44 -03:00
jpsouzasilva
64656d8d4b Fixes the file identification for JSX 2018-08-30 08:11:50 -03:00
jpsouzasilva
0e20db0cb7 Changes from PR review #1 2018-08-29 13:17:06 -03:00
jpsouzasilva
581ba25bf8 Simplify pattern rules for matching single word syntax naming 2018-08-28 23:55:27 -03:00
jpsouzasilva
9cce773acb Case-insensitive type string matching
Fixing the plugin for Vim 7.4 (Travis)
2018-08-28 23:46:27 -03:00
jpsouzasilva
ca2b158737 Deleting the test.log file 2018-08-28 22:06:59 -03:00
jpsouzasilva
03c2309f44 Attempt at fixing the Javascript identifier pattern
Running tests locally seems OK!
2018-08-28 22:05:06 -03:00
jpsouzasilva
3dcdbff913 Remove empty string comparison for xml identification 2018-08-25 15:49:54 -03:00
jpsouzasilva
7843f18e40 Prioritizes syntax at the current cursor position for determining the file type 2018-08-25 15:22:18 -03:00
Yasuhiro Matsumoto
63c98d801b Merge branch 'master' of https://github.com/mattn/emmet-vim 2018-08-07 16:05:04 +09:00
Yasuhiro Matsumoto
645258ddd4 element configuration should be overridable
Fixes #432
2018-08-07 16:03:23 +09:00
Yasuhiro Matsumoto
2ac3648bc8 fix custom expanding
closes #429
2018-08-06 22:31:34 +09:00
Yasuhiro Matsumoto
3fb134b503 fix finding begining of token
closes #428
2018-07-19 01:02:57 +09:00
Yasuhiro Matsumoto
dcf8f6efd8 treat foo. as boolean attributes
closes #426
2018-07-13 12:56:55 +09:00
Yasuhiro Matsumoto
e7dd13a750 fix custom tag 2018-07-13 12:01:46 +09:00
Yasuhiro Matsumoto
f5b185e3a2 fix zero origin base value
closes #420
2018-05-21 10:39:09 +09:00
mattn
acc5ac7a9b Merge pull request #421 from Giorgiosaud/master
get blade syntax
2018-05-21 10:09:01 +09:00
Yasuhiro Matsumoto
fb31b5dbb6 make child node if current node have a name already
related #272
2018-05-02 14:29:53 +09:00
Yasuhiro Matsumoto
1ba2eb67fb fix attribute pattern 2018-04-25 11:15:55 +09:00
Yasuhiro Matsumoto
a0aa79d660 use : prefix for localvar 2018-04-25 10:41:25 +09:00
Yasuhiro Matsumoto
40c89e5415 handle inner []
closes #412
2018-04-25 10:32:16 +09:00
Yasuhiro Matsumoto
c0728a8dac Merge branch 'master' of https://github.com/mattn/emmet-vim 2018-04-25 10:04:27 +09:00
Yasuhiro Matsumoto
06b4cda774 expand local variables in custom snippets.
closes #414
2018-04-25 10:03:38 +09:00
mattn
5cb3b51e47 Merge pull request #410 from ashfinal/master
Adds emmet#anchorizeURL support for reStructuredText
2018-04-25 09:03:40 +09:00
Rick Galbo
927f72b49d fix a broken markdown heading
no space between heading indicator and text
2018-04-22 14:52:18 -05:00
ashfinal
18c0cf55f4 Adds emmet#anchorizeURL support for reStructuredText 2018-03-16 20:47:39 +08:00
mattn
350f0ba10b Merge pull request #398 from taylorzr/master
Fix "More Tutorials" link
2017-12-08 07:47:06 +09:00
Zach Taylor
2a8918a775 Fix "More Tutorials" link 2017-12-07 14:12:48 -06:00
Yasuhiro Matsumoto
abdd9e440d fix .travis.yml and README.mkd 2017-12-07 00:26:00 +09:00
Yasuhiro Matsumoto
e8c905853b fix README.mkd 2017-12-07 00:23:18 +09:00
Yasuhiro Matsumoto
8e06fbd056 remove --clean 2017-12-07 00:20:12 +09:00
Yasuhiro Matsumoto
2364a97f1c fix Makefile 2017-12-07 00:18:25 +09:00
Yasuhiro Matsumoto
1be61f24ba fix Makefile 2017-12-07 00:18:09 +09:00
Yasuhiro Matsumoto
ac8767eb15 fix Makefile 2017-12-07 00:16:02 +09:00
Yasuhiro Matsumoto
5405e9dbf0 add .travis.yml 2017-12-07 00:14:10 +09:00
Yasuhiro Matsumoto
c7923d1ec4 fix #389 2017-12-07 00:13:48 +09:00
Yasuhiro Matsumoto
5181a02a09 add test 2017-12-07 00:13:40 +09:00
mattn
1c6b56f0e0 Merge pull request #395 from pageYe123/patch-2
correct the wrong link address
2017-11-13 14:45:51 +09:00
Ye Shiqing
2196a056b4 correct the wrong link address
missing `/blob/` https://raw.github.com/mattn/emmet-vim/blob/master/TUTORIAL
2017-11-12 01:45:54 -06:00
mattn
a06966cfb2 Merge pull request #393 from vais/patch-2
Fix typo in documentation
2017-11-07 14:18:10 +09:00
mattn
fd4a3f6089 Merge pull request #394 from theRemix/doc/plug-install
README for vim-plug installation
2017-11-01 20:01:42 +09:00
Jon Borgonia
f1fba43944 add instructions for installation with vim-plug 2017-10-31 20:14:05 -07:00
Vais Salikhov
609c66f043 Fix typo in documentation 2017-10-23 22:14:30 +07:00
mattn
bcadf12a03 Merge pull request #392 from vais/patch-1
Fix typo in documentation
2017-10-22 19:51:33 +09:00
Vais Salikhov
d653ee7df0 Fix typo in documentation 2017-10-21 20:14:51 +07:00
mattn
ed79a9264d Merge pull request #384 from hpate-omicron/patch-1
Fix #382 - Multiple class name expansion with Elm
2017-08-21 10:57:21 +09:00
mattn
71c68c2d6c Merge pull request #383 from korneliakobiela/master
Rewrite TUTORIAL to markdown file format
2017-08-21 10:56:42 +09:00
hpate-omicron
4b4e68ae1d Fix #382 - Multiple class name expansion with Elm
This change makes the multiple class name expansion work correctly in Elm.

```
div.one.two.three
```

Becomes
```
    div [ class "one two three" ] []
```

Previously you would get
```
    div [ class "one.two.three" ] []
```
https://github.com/mattn/emmet-vim/issues/382
2017-08-16 09:52:32 -04:00
Kornelia Kobiela
abc97ac757 Rewrite TUTORIAL to markdown file format 2017-08-13 21:24:43 +02:00
Yasuhiro Matsumoto
9c6d783636 add test 2017-07-13 01:49:34 +09:00
Yasuhiro Matsumoto
230f41e55b handle attribute in join-tag
close #379
2017-07-13 01:47:17 +09:00
Yasuhiro Matsumoto
94261d6515 handle name={{width: 300px}}
close #377
2017-06-22 22:32:30 +09:00
Yasuhiro Matsumoto
aa801bc9b7 add block_all_childless
close #270
2017-06-13 18:10:16 +09:00
Yasuhiro Matsumoto
3af413c9a3 fix unittest 2017-06-01 22:42:56 +09:00
Yasuhiro Matsumoto
2247b1f457 fix indentation 2017-06-01 22:42:47 +09:00
Yasuhiro Matsumoto
6c38fe86c1 remove debug code 2017-05-16 17:07:20 +09:00
Yasuhiro Matsumoto
956f1b0b43 try to find short name in css snippets
close #371
2017-05-16 17:06:55 +09:00
mattn
4efb1c333e Merge pull request #368 from floscr/fix/add-viewport-units
Add viewport units to expansion
2017-03-30 10:26:09 +09:00
Florian Schroedl Home
d6e093d441 Add viewport units to expansion 2017-03-29 17:35:23 +02:00
mattn
5442207ccb Merge pull request #363 from jankjn/patch-1
fix script tag
2017-01-14 20:01:33 +09:00
Jankin Zhang
f0a0948d2d fix script tag
`script` and `script:src` both was expanded to `<script src=""></script>`
2017-01-14 18:45:49 +08:00
Yasuhiro Matsumoto
e5d28f004c add ! for pug 2017-01-04 12:49:12 +09:00
mattn
20dd275531 Merge pull request #359 from bobbylee/master
Updated CSS snippet section from emmetio/emmet
2017-01-03 22:30:00 +09:00
Bobby Lee
5db2c29f14 Updated CSS snippet section with the latest settings from emmetio/emmet (flexbox) 2016-12-27 12:35:08 +13:00
Michael Bøcker-Larsen
5b217264dd Minimal elm lang support #356 2016-12-07 00:04:49 +09:00
Yasuhiro Matsumoto
1a9c1493ab Fixes #355 2016-11-30 14:05:39 +09:00
Yasuhiro Matsumoto
44906fb16e fix #354 2016-11-23 23:41:57 +09:00
mattn
4eca5f5693 Merge pull request #352 from d8660091/fix351
fix while loop, #351
2016-11-10 10:19:42 +09:00
Xu Deng
dfff6672c6 fix while loop, #351 2016-11-09 20:02:15 -05:00
Yasuhiro Matsumoto
64544b778d fix test 2016-11-07 16:09:13 +09:00
Yasuhiro Matsumoto
ebcf6d2205 fix rtype 2016-11-07 16:09:09 +09:00
Yasuhiro Matsumoto
d7b70c656a handle javascript.jsx
Close #347
2016-10-30 21:10:30 +09:00
Yasuhiro Matsumoto
f12fa6e493 Merge commit '30d58ee' 2016-10-29 22:58:51 +09:00
Yasuhiro Matsumoto
b8bb1e51b8 Merge commit 'b56be29' 2016-10-29 22:58:40 +09:00
Yasuhiro Matsumoto
30d58ee417 lookup base type 2016-10-29 22:57:32 +09:00
Yasuhiro Matsumoto
b56be291c4 empty_element_suffix should be " />" for JSX
Close #313
2016-10-29 20:36:07 +09:00
Yasuhiro Matsumoto
d228a90eb1 Merge branch 'master' of git://github.com/mattn/emmet-vim 2016-10-29 20:34:36 +09:00
Yasuhiro Matsumoto
1fe780000b Self closing tag
Close #346
2016-10-29 20:33:05 +09:00
Yasuhiro Matsumoto
28ff569be3 empty_element_suffix should be " />" for JSX
Close #313
2016-10-27 09:14:09 +09:00
Yasuhiro Matsumoto
f4b097af50 fix #340
add -ms- and -o- for vendor prefixes
2016-07-27 16:53:33 +09:00
mattn
92710ebcd2 Merge pull request #339 from greuben/master
Use htmlFor in jsx
2016-07-18 20:31:29 +09:00
Reuben Gunday
4805d355c1 Use htmlFor in jsx 2016-07-17 01:13:52 +05:30
mattn
3654efd3d1 Merge pull request #338 from abobov/patch-1
Fix typo in documentation
2016-07-07 18:29:06 +09:00
Anton Bobov
3cace3fa08 Fix typo in documentation 2016-07-07 14:00:28 +05:00
Yasuhiro Matsumoto
26899b9981 needless div wrapped for lorem 2016-07-05 10:06:18 +09:00
Yasuhiro Matsumoto
c03599748f fix bem filter 2016-07-05 09:45:13 +09:00
Yasuhiro Matsumoto
52f3af7ca8 select is not inline element 2016-06-10 14:14:11 +09:00
Yasuhiro Matsumoto
6e93371365 fixes about #303 2016-06-07 17:59:41 +09:00
Yasuhiro Matsumoto
7e1aa89fa4 put space after variable like [st :] 2016-06-07 11:10:55 +09:00
Yasuhiro Matsumoto
bcab81cc24 fixes #333 2016-06-05 09:54:14 +09:00
Yasuhiro Matsumoto
02f5a2ec81 fix #332 2016-05-28 00:48:57 +09:00
Yasuhiro Matsumoto
f8bf9dbf69 fix #332 2016-05-28 00:39:18 +09:00
Yasuhiro Matsumoto
7735a778c8 fix #332 2016-05-27 03:48:58 +09:00
Yasuhiro Matsumoto
6a6698a179 fix #332 2016-05-27 01:52:33 +09:00
Yasuhiro Matsumoto
6f4869796c fix #332 2016-05-26 23:45:16 +09:00
Yasuhiro Matsumoto
31d903d390 li>lorem 2016-05-17 02:45:20 +09:00
Yasuhiro Matsumoto
e42c07978e Detect pug as well as jade file types
Close #330
2016-05-12 08:56:28 +09:00
Yasuhiro Matsumoto
e2be3aa391 Custom expands should be expanded in later
Fixes #272
2016-05-10 11:11:41 +09:00
Yasuhiro Matsumoto
05bfff176b Fixes #329 again 2016-05-10 10:00:18 +09:00
Yasuhiro Matsumoto
8239822548 fix test 2016-05-10 09:18:23 +09:00
Yasuhiro Matsumoto
1a0c1288e1 Fixes #329 2016-05-10 09:06:47 +09:00
Yasuhiro Matsumoto
b4b21450f2 fallback for shiftwidth() 2016-04-26 08:49:46 +09:00
mattn
0b4310353a Merge pull request #326 from ryunix/using-shiftwidth-func
Using shiftwidth()
2016-04-17 00:31:10 +09:00
ryunix
d550205295 Using shiftwidth() 2016-04-17 00:13:45 +09:00
Jorge Luis Saud Rosal
1e9df4f015 get blade syntax 2016-03-03 15:39:51 -04:30
Yasuhiro Matsumoto
0ccaa29dbd fix #314 2016-01-11 23:58:22 +09:00
mattn
41f005e740 Merge pull request #312 from jugend/jsx-multi-filetypes
fix jsx type check to support multi file types
2016-01-03 02:12:59 +09:00
Herryanto Siatono
4feadc4062 fix jsx type check to support multi file types 2016-01-03 01:08:04 +08:00
Yasuhiro Matsumoto
dee767c998 check type is JSX strictly 2016-01-01 00:11:00 +09:00
Herryanto Siatono
699689c985 add support for jsx attribute expression 2016-01-01 00:07:23 +09:00
mattn
1ac0fb7011 Merge pull request #310 from jugend/fix-join-space
fix missing space before /> on html tag join
2016-01-01 00:06:53 +09:00
Herryanto Siatono
cbe10f91b4 fix missing space before /> on html tag join 2015-12-31 15:23:29 +08:00
mattn
c790128137 Merge pull request #308 from nkalvi/master
Expand implicit tag names as span inside inline elements
2015-12-20 23:53:00 +09:00
nkalvi
997314f226 Merge pull request #1 from nkalvi/nkalvi-patch-to-307
A possible fix to issue #307
2015-12-19 13:21:30 -05:00
nkalvi
6f676c4a38 A possible fix to issue #307 2015-12-16 14:26:17 -05:00
Yasuhiro Matsumoto
8b8aefd64c more implements for #307 2015-12-14 12:21:17 +09:00
Yasuhiro Matsumoto
ea47fca11e fix implicit tag expansion.
Close #307
2015-12-14 00:39:47 +09:00
Yasuhiro Matsumoto
e24ea1734e add screenshot 2015-11-24 15:04:19 +09:00
Yasuhiro Matsumoto
fb3cac36bb Fixes #306 2015-11-23 23:42:12 +09:00
Yasuhiro Matsumoto
451367a2ce add doc for emmet-update-tag
Close #285
2015-11-10 10:34:50 +09:00
Yasuhiro Matsumoto
f752a4250c add doc for emmet-expand-word 2015-11-10 10:25:11 +09:00
Yasuhiro Matsumoto
1672e5664c should behave on only html 2015-11-10 09:43:25 +09:00
Yasuhiro Matsumoto
5819343b88 oops. fixed bug 2015-11-10 09:41:17 +09:00
Yasuhiro Matsumoto
913dfe686d remove debug message 2015-11-10 09:39:13 +09:00
Yasuhiro Matsumoto
603d6e4fcd fix bug 2015-11-10 09:38:27 +09:00
Yasuhiro Matsumoto
136b87a330 expand snippets for filetypes like html.handlebars
Close #298
2015-11-10 09:36:15 +09:00
Yasuhiro Matsumoto
5eb1061a3d redirect expanding.
Close #237
2015-11-10 09:13:48 +09:00
Yasuhiro Matsumoto
4110fb0f7b ignore django template 2015-10-26 09:44:07 +09:00
Yasuhiro Matsumoto
1691ccc7e8 fix default_attributes 2015-10-20 10:49:55 +09:00
Yasuhiro Matsumoto
0bd0a38a29 fix merge configuration 2015-10-20 10:12:03 +09:00
Yasuhiro Matsumoto
13b842d9c4 default_attributes should be array of dictionary 2015-10-20 09:29:34 +09:00
Yasuhiro Matsumoto
fceb37243a appending array configuration into map
Close #301
2015-10-20 09:04:11 +09:00
Yasuhiro Matsumoto
abdf10e91c allow empty configuration 2015-10-02 19:01:19 +09:00
Yasuhiro Matsumoto
333fede99b fix #296 2015-09-29 14:51:44 +09:00
Yasuhiro Matsumoto
037c7e5720 add test for bem filter 2015-09-25 09:26:43 +09:00
Yasuhiro Matsumoto
5041c20aae don't use getchar(0). unittest.vim stop the test-sequence. 2015-09-25 09:19:16 +09:00
Yasuhiro Matsumoto
77747c762a fix bem filter. close #295 2015-09-25 09:18:47 +09:00
Yasuhiro Matsumoto
4933347202 fix #292 2015-08-31 14:24:14 +09:00
Yasuhiro Matsumoto
1c240c6d6d extendible configuration with '*' 2015-08-20 00:20:53 +09:00
Yasuhiro Matsumoto
2c429485ec fix #290. use getpos('.') instead 2015-08-18 21:57:16 +09:00
Yasuhiro Matsumoto
7a9412d3da fix #289. don't remove ${cursor} in attributes 2015-08-18 10:50:09 +09:00
Yasuhiro Matsumoto
6e1175326e Merge branch 'master' of https://github.com/mattn/emmet-vim 2015-08-17 20:33:14 +09:00
Yasuhiro Matsumoto
8a8f46bc17 should be g: 2015-08-17 20:32:16 +09:00
Yasuhiro Matsumoto
6d572e21e4 fix #287. set nogdefault 2015-08-17 20:22:52 +09:00
mattn
cee9e9d6c8 Merge pull request #286 from xnuk/master
Jade: add snippets
2015-08-17 09:34:40 +09:00
즈눅
0617f58dd6 Jade: add snippets 2015-08-15 05:34:52 +09:00
mattn
57a5263d1d update vimup file 2015-07-26 21:42:30 +09:00
mattn
e82844db78 bump up version 2015-07-26 21:42:01 +09:00
mattn
5dda53c1ec find resource for each of filetype which is separated with dot. fix #265 2015-07-26 21:36:29 +09:00
mattn
e2c2f48716 Merge branch 'master' of github.com:mattn/emmet-vim 2015-07-25 10:51:57 +09:00
mattn
f36d6f4025 exapnd $# of attribute in block element. close #282 2015-07-25 10:49:40 +09:00
mattn
a210cc0c5e Merge pull request #281 from josuecau/fix-jade
Jade: remove extra "/" after empty elements expansion
2015-07-16 09:43:02 +09:00
Josué Cau
7e3af15e4e Jade: remove extra "/" after empty elements expansion
For instance, `img` should be expanded to `img(src="", alt="")` rather than `img(src="", alt="")/`
2015-07-15 11:06:53 +02:00
mattn
c523cfd5e2 Merge pull request #280 from Bubujka/master
Added jade support (based on haml.vim)
2015-07-13 12:05:43 +09:00
Aleksej Kamynin
8289c323e0 Added jade support (based on haml.vim) 2015-07-11 12:36:52 +03:00
Yasuhiro Matsumoto
30f8568935 fix #276 2015-06-26 12:48:22 +09:00
Yasuhiro Matsumoto
cda7349b65 text content should be repeated with multiplier 2015-06-23 13:57:08 +09:00
mattn
610c2ea673 Merge pull request #267 from syohex/fix-typo
fix typo
2015-05-12 16:12:37 +09:00
Syohei YOSHIDA
87e50225c1 fix typo 2015-05-12 12:54:05 +09:00
Yasuhiro Matsumoto
1c46c5fb77 Add g:emmet_install_only_plug to install only <plug> mappings 2015-03-18 17:28:50 +09:00
Yasuhiro Matsumoto
03bb2b26fe Add some units behavior of css. Close #264 2015-03-18 11:28:39 +09:00
mattn
af10f14ae5 Merge pull request #261 from Cade-Forester/patch-1
Improve and extend documentation
2015-03-03 08:52:57 +09:00
Cade-Forester
1ddd5f2270 Improve and extend documentation 2015-03-02 18:55:58 +05:00
mattn
25d321c66f Support Vim 7.2 2015-02-27 01:39:55 +09:00
mattn
fd0c0db219 Merge pull request #258 from Cade-Forester/patch-1
Fix: don't ignore g:user_emmet_complete_tag
2015-02-27 00:53:58 +09:00
Cade-Forester
ab5d0f026c Fix: don't ignore g:user_emmet_complete_tag
"plugin/*.vim" files sourced at vim startup.
At vim startup no buffers exists,
so ":setlocal" command do nothing.
Move ":setlocal" command to  s:install_plugin() function.
2015-02-26 18:31:08 +05:00
mattn
b5a94de150 Merge pull request #256 from Cade-Forester/patch-1
Allow using ":EmmetInstall | OtherCommand"
2015-02-26 03:42:53 +09:00
Cade-Forester
971a13ca98 Allow using ":EmmetInstall | OtherCommand"
Example of usage:

autocmd FileType html EmmetInstall | setlocal omnifunc=emmet#completeTag
2015-02-25 23:33:09 +05:00
mattn
3d6862d5d1 Support jsx's className. Close #255 2015-02-21 21:06:33 +09:00
mattn
c24f2dcfcb Merge pull request #254 from shigo141/fix-doc
Update doc
2015-02-12 01:12:12 +09:00
shigo141
a7e876d5b5 Update doc 2015-02-12 00:51:16 +09:00
mattn
c6e11d22dc Merge pull request #252 from jwhitley/john/fix-indentation
Do not hardcode a default indentation setting
2015-01-29 09:13:50 +09:00
John Whitley
862abb3895 Do not hardcode a default indentation
Change 2a8f0e094d hardcoded a value for
s:emmet_settings.variables.indentation, which incorrectly overrides the
logic in emmet#getIndentation that respects a user's indentation
settings in the absence of an explicit emmet indentation config setting.
2015-01-28 12:31:44 -08:00
mattn
e1f2f00a5c Merge pull request #251 from dencold/master
Enhance link:import to be in line with emmet.io
2015-01-28 09:05:04 +09:00
Dennis Coldwell
d4647629b2 enhancing link:import abbreviation
- matching implementation to emmet.io reference
- https://github.com/emmetio/emmet/blob/master/lib/snippets.json#L670
2015-01-27 10:09:30 -08:00
mattn
8b9bcac7a0 Add some workaround for #248 2015-01-08 14:23:34 +09:00
mattn
a9b29f786e Fixes #249 2015-01-08 14:05:37 +09:00
mattn
fcf44c5f6d user_emmet_settings.indentation should be checked at the first 2014-12-21 23:56:59 +09:00
mattn
4cc293d464 Merge pull request #244 from RobAWilkinson/master
Spelling error, changed "toogle" to "toggle"
2014-12-18 09:34:33 +09:00
Robert Wilkinson
7be2d5b977 Spelling error, changed "toogle" to "toggle" 2014-12-17 16:01:11 -08:00
mattn
26954b92cd Fixes tests 2014-12-17 17:26:49 +09:00
mattn
47b54c2e5e Fixes against errors/warnings in vint 2014-12-17 17:26:10 +09:00
mattn
edf74342b5 Merge branch 'master' into wip 2014-12-17 16:09:57 +09:00
mattn
cd09765a83 use_selection = 0 in default 2014-12-17 16:09:20 +09:00
mattn
5bfcf0abfd wip 2014-12-17 03:59:40 +09:00
mattn
1c1c511896 Update css abbreviations 2014-12-17 03:31:12 +09:00
mattn
0e08b66e6c Replace all 2014-12-17 03:14:59 +09:00
mattn
62b3accc20 Check maprg too 2014-12-16 19:09:02 +09:00
mattn
9ac3339942 WIP: implement selection 2014-12-16 19:08:49 +09:00
mattn
2a8f0e094d lang/charset should be in variables of configuration 2014-12-11 14:27:46 +09:00
mattn
2b4eea8775 hasmapto should be used to check key-mapping instead of plug-mapping 2014-12-09 18:00:01 +09:00
mattn
76499f48b8 Remove badge 2014-12-08 20:33:45 +09:00
mattn
0d63cc76aa Merge pull request #235 from kashiro/issues234
add link:import for webcomponents #234
2014-11-27 01:48:28 +09:00
mattn
8b703a0a00 Fixes errors on lint. #236 2014-11-06 20:02:36 +09:00
mattn
4b17969f5a Markdown 2014-11-05 19:36:29 +09:00
tomoyuki kashiro
3e668b3523 add link:import for webcomponents #234 2014-11-03 17:43:09 +09:00
mattn
485abffe6c Add test to expand dn to 'display: none' for css 2014-10-09 09:47:40 +09:00
mattn
4d78123db9 Find snippet more fuzzy. Close #212 2014-10-09 09:45:47 +09:00
mattn
920904c53b Version bump up 2014-09-03 09:13:16 +09:00
mattn
a3418eb419 Merge branch 'master' of github.com:mattn/emmet-vim 2014-09-02 18:35:06 +09:00
mattn
070800e31d Support 's' filter. Close #231 2014-09-02 18:33:26 +09:00
mattn
e9b90c7f90 Merge pull request #230 from UncleBill/master
use two dollars to escape $
2014-08-31 14:48:54 +09:00
UncleBill
def1f1aead escape $ 2014-08-29 22:16:14 +08:00
mattn
55c704bc3a fl should be expanded float:left; in css. close #225 2014-08-08 18:49:35 +09:00
mattn
591bfc99dc Fix tests 2014-08-06 16:07:42 +09:00
mattn
d51cb7141f Merge pull request #223 from sheoak/master
Sass not working properly with sass extension
2014-08-06 15:59:27 +09:00
mattn
c0175decd3 Fix attribute parse 2014-08-06 15:57:59 +09:00
mattn
bd5f03bb24 Fix #224 2014-08-06 15:42:04 +09:00
sheoak
105bea22b8 Merge branch 'master' of https://github.com/mattn/emmet-vim 2014-08-04 15:07:09 +02:00
sheoak
f1a34ccaa3 Fixes issue #211 - sass not working properly because expecting braces instead of tabs 2014-08-04 15:05:40 +02:00
mattn
39d8f88ccd Remove debug code 2014-08-04 12:21:02 +09:00
mattn
bd6060ba91 Workaround for sass, fixes #222 2014-08-04 11:46:54 +09:00
mattn
a61cb0c138 Merge pull request #221 from mvz/fix-vundle-instructions
Fix Vundle instructions
2014-07-24 20:17:26 +09:00
Matijs van Zuijlen
92fa2e568f Fix Vundle instructions
- Fix syntax to work in .vimrc
- The Bundle command is being renamed to Plugin (although Bundle still
  works for now)
2014-07-24 08:13:18 +02:00
mattn
2b94508a46 div[foo bar] should be expanded into <div foo="" bar=""></div>. close #218 2014-07-18 20:29:28 +09:00
mattn
dcf247fb5c Fix test 2014-07-18 20:15:22 +09:00
mattn
3874d6210d Merge branch 'master' of github.com:mattn/emmet-vim 2014-07-18 20:14:55 +09:00
mattn
23aea8c21a Revert 08eb534c42, because test is failing 2014-07-18 20:14:08 +09:00
mattn
00536daaf6 Merge pull request #217 from conraddecker/master
Changed 'parenthesis' setting to 'attribute_style' setting
2014-07-18 17:27:31 +09:00
mattn
0f45689b81 Set attributes. fix #218 2014-07-18 13:13:54 +09:00
mattn
beeb159626 Merge pull request #219 from typoon/master
Small fix related to VIM Tip #436
2014-07-18 12:59:16 +09:00
gilgamesh
08eb534c42 Small fix related to VIM Tip #436
http://vim.wikia.com/wiki/Recover_from_accidental_Ctrl-U

Suppose you do the following:

div.foo.bar.baz<c-y>,

This will be expanded to <div clas="foo bar baz"></div>

Then you realize that you wanted yyy instead of baz. You press ESC and
u and notice that you don't have your original string in the undo log
(div.foo.bar.baz).

This patch fixes this behaviour.
2014-07-17 16:47:41 -03:00
Conrad Decker
437cd92004 Changed 'parenthesis' setting to 'attribute_style' setting to allow for choice between 'hash' and 'html'
Updated output to correctly display html-style attributes or hash-style attributes. 'attribute_style' setting defaults to hash but can be updated by the user to use html style attributes
2014-07-17 09:40:35 -04:00
mattn
761adcc4be Fix typo 2014-07-17 09:35:04 +09:00
mattn
ca6296fb7f parenthesis for haml #216 2014-07-17 09:23:28 +09:00
mattn
96903b0913 Merge pull request #215 from shaabhishek/master
Added meta viewport tag
2014-06-28 23:47:44 +09:00
abhishek
949b8c26b7 Added meta viewport tag 2014-06-28 15:36:26 +09:00
mattn
320bb97cb4 Merge pull request #213 from sevko/master
Document g:user_emmet_leader_key's trailing ','.
2014-06-25 13:56:16 +09:00
Severyn Kozak
23bb8c0175 Document g:user_emmet_leader_key's trailing ','.
README.mkd, doc/emmet.txt
	-Add some text to clarify that any keymap specified with
	`g:user_emmet_leader_key` must be followed by a `,`.
2014-06-25 00:23:20 -04:00
mattn
39a5ba0eca Add test for #210 2014-06-06 13:50:23 +09:00
mattn
ef3f51ba44 Parse as css 2014-06-06 13:50:23 +09:00
mattn
da9283aa5c Don't handle @i for @i {} 2014-06-06 13:50:22 +09:00
mattn
7ac6a8acb8 Fix tests 2014-06-06 13:50:21 +09:00
mattn
ef27d24df0 Fix #210 2014-06-06 13:50:21 +09:00
mattn
c49d4567dc Fix default attributes 2014-06-06 13:50:20 +09:00
mattn
7711bf1f15 Merge pull request #209 from deepflame/master
change shortcut description
2014-05-26 10:36:03 +09:00
Andreas Böhrnsen
fe38681354 maybe this is better 2014-05-26 00:31:05 +08:00
Andreas Böhrnsen
5d73777a65 small update to docs to make shortcut clearer 2014-05-26 00:28:12 +08:00
mattn
3ccd466123 Fix #207 2014-05-19 15:13:34 +09:00
mattn
018a97523a Merge pull request #205 from richardscollin/patch-1
Typo in doc
2014-05-14 11:59:47 +09:00
Collin Richards
b3c346c54d Typo in doc
Changed two closing li tags to div tags.
2014-05-13 22:53:28 -04:00
mattn
fbd353387b Add c# for expanding color: ; 2014-05-07 10:09:37 +09:00
mattn
e185c13171 s/7/8/ 2014-05-07 10:05:47 +09:00
mattn
e18077e991 Fixed #203 2014-05-01 13:41:40 +09:00
mattn
ff1aaf88a9 Fixes behavior of removeTag 2014-04-14 09:38:12 +09:00
mattn
2b6f37f470 Fix balance tag 2014-04-14 09:20:02 +09:00
mattn
74055488de Try more candidates. 2014-04-13 01:12:12 +09:00
mattn
6adab8a234 Use indent getting from configuration, Fix #201 2014-04-03 01:36:28 +09:00
mattn
19961fc270 Fix #199 2014-03-28 22:13:51 +09:00
mattn
ed36e194e5 Wrap what you see when leader contains {$#} 2014-03-28 22:00:01 +09:00
mattn
5916ad27fa update doc 2014-03-27 09:25:00 +09:00
mattn
b00cf4d33f Update doc 2014-03-27 09:06:15 +09:00
mattn
0511be8ac5 Merge pull request #198 from ctruett/master
Edited line 110 of autoload/emmet.vim to fix intelligent expansion. It w...
2014-03-26 10:58:50 +09:00
Christopher Truett
e8169335a5 Edited line 103 of autoload/emmet.vim to fix intelligent expansion. It was trying to call a non-existant command. 2014-03-25 20:03:32 -04:00
mattn
6577e0e687 Guard attributes 2014-03-16 00:05:57 +09:00
mattn
2f0bd7d02e Add test for #195 2014-03-15 22:50:29 +09:00
mattn
56634e7f80 Fixes #195 2014-03-15 22:47:52 +09:00
mattn
ef3b75e877 comment_type 2014-03-14 13:51:27 +09:00
mattn
43e940a660 Fix doc 2014-03-12 17:41:54 +09:00
mattn
7005655302 Fix typo 2014-03-12 17:08:06 +09:00
mattn
d894c67aa9 remove \<right> 2014-03-11 21:41:17 +09:00
mattn
7268e203b8 upper case 2014-03-11 21:07:53 +09:00
mattn
cd23a38f2b <!DOCTYPE> should be contains last \n 2014-03-11 21:07:07 +09:00
mattn
9480824c0f Find snippet recursibly 2014-03-11 17:18:17 +09:00
mattn
464291244a Remove debug message 2014-03-11 17:17:29 +09:00
mattn
c087cff8ff Add test for update tag 2014-03-11 17:16:58 +09:00
mattn
6d2c6a1de4 Add test for RGBa syntax 2014-03-11 17:07:22 +09:00
mattn
fef441fa71 New emmet feature: RGBa syntax 2014-03-11 17:01:31 +09:00
mattn
cd808a5fe5 New emmet feature: update tag 2014-03-11 16:39:35 +09:00
mattn
9b80875e07 bump up version 2014-03-10 11:19:02 +09:00
mattn
52545221f6 Save/restore cursor position for removing $cursor$. related issue #162 2014-03-10 11:13:39 +09:00
mattn
72610878e4 Use dash 2014-03-06 09:09:57 +09:00
mattn
7f0521f094 Use dash 2014-03-06 09:08:50 +09:00
mattn
fb11bd8b28 Add test 2014-02-13 17:21:38 +09:00
mattn
7aa1ff965a script[jquery.js] 2014-02-13 17:20:46 +09:00
mattn
49cb1c2884 Fix default attributes 2014-02-13 17:15:59 +09:00
mattn
19395caea7 Fix default attribute 2014-02-13 17:01:59 +09:00
mattn
ba56b91719 unlet Val 2014-02-13 16:48:27 +09:00
mattn
dc8b589cd0 Take two arguments for lg(xx,xx) 2014-02-13 16:46:08 +09:00
mattn
2f1e60f4fe Add default attributes(emmet v1.1beta) 2014-02-13 16:32:20 +09:00
mattn
381dd35018 Improve cursor position after expanding for sass 2014-02-12 20:53:22 +09:00
mattn
d9481c235b Fix sass indentation 2014-02-12 20:47:26 +09:00
mattn
6cd20746ad Fixes indentation bug. Closes #189 2014-02-12 20:25:03 +09:00
mattn
554e0c02f5 Look Content-Type for ^YA. closes #188 2014-02-05 18:41:20 +09:00
mattn
afb2086306 Merge pull request #181 from josephjaber/patch-1
Fix Vundle installation link in README.md
2013-12-19 15:45:13 -08:00
Joseph Jaber
8989b0a49c Fix Vundle installation link in README.md
Fix markdown in Vundle installation section that caused the link to be formatted incorrectly.
2013-12-19 11:47:16 -05:00
mattn
ddbbe81d09 Update README, related issue #148 2013-12-13 20:25:26 +09:00
mattn
2e365c9573 Fixes #139 2013-12-13 20:22:59 +09:00
mattn
576679e023 Merge pull request #179 from qp123asd/master
Add less support,and fix scss typo.
2013-12-12 15:56:49 -08:00
weirongxu
936d5c6c2f Add less support,and fix scss typo. 2013-12-13 02:29:52 +08:00
mattn
df3e61ba69 Fixes #178 2013-12-06 20:31:43 +09:00
mattn
934feeb55f Add bem filter: http://docs.emmet.io/filters/bem/ 2013-12-06 17:06:14 +09:00
mattn
fee5b34b5f ... 2013-11-29 21:07:53 +09:00
mattn
262777309f Customizable quote char 2013-11-29 20:13:26 +09:00
mattn
d2d6a9f385 Merge pull request #166 from zytron/filetype_detection
Changed emmet#getFileType() to do basetype checking on &ft parts
2013-11-29 01:17:22 -08:00
mattn
8aeb24fa77 Fix name of function 2013-11-28 09:44:15 +09:00
mattn
2ecc25f727 Fixes #173 2013-11-28 09:39:26 +09:00
mattn
47f27f8c3d Fixies #172 2013-11-26 16:22:37 +09:00
mattn
e990cebbae Workaround 2013-11-26 12:49:45 +09:00
mattn
48373cbf0a Ooooos 2013-11-26 12:37:47 +09:00
mattn
d6ab310cc9 Fixes rendering type 2013-11-26 09:58:41 +09:00
mattn
fb096ac4d4 Support boolean attributes, related issue #170 2013-11-25 01:36:12 +09:00
mattn
8c1e42340d Closes popup if displayed 2013-11-22 14:50:56 +09:00
mattn
f3e6cc72a3 version bump up 2013-11-21 15:05:08 +09:00
mattn
5a37a6ef26 Closes popup 2013-11-21 12:46:11 +09:00
Bill Hau
59239b05bb Changed emmet#getFileType() to do basetype checking on &ft parts instead of empty type var 2013-11-15 20:15:41 +09:00
mattn
135fb40b27 Merge pull request #169 from minimul/readme-pathogen-update
Pathogen defacto standard is to use 'git clone'. Moreover, the 'unzip /p...
2013-11-14 15:58:52 -08:00
Christian
55eb236bd8 Revert back to https:// url type as this is Github's recommended type. See http://stackoverflow.com/questions/11041729/why-does-github-recommend-https-over-ssh 2013-11-14 15:31:16 -05:00
Christian
e058f514a5 Pathogen defacto standard is to use 'git clone'. Moreover, the 'unzip /path/to/emmet-vim.zip' command does not work because a parent directory (e.g. emmit-vim) needs to be created within the ~/.vim/bundle dir for vim to pickup the plugin correctly. Lastly, use the SSH url as it is the cloning default standard. 2013-11-13 16:59:58 -05:00
mattn
55c0875505 Merge pull request #167 from mattkatz/patch-1
Adding instructions for using Vundle
2013-11-06 19:22:14 -08:00
mattkatz
d60db48777 Adding instructions for using Vundle
Vundle is like pathogen but just an eeeensy bit better.
2013-11-06 19:17:00 -05:00
mattn
b8569d50f4 map keys for the buffer. related issue #163 2013-11-01 18:06:30 +09:00
Bill Hau
b5ea573744 Changed emmet#getFileType() to do basetype checking on &ft parts instead of empty type var 2013-10-31 13:52:52 +00:00
mattn
313a58d55c Remove all quotes. related issue #155 2013-10-31 08:42:29 +09:00
mattn
3c5eb601fb Add !!! 2013-10-29 22:41:33 +09:00
mattn
f82d715caa Possible to specify !!! 2013-10-29 22:18:15 +09:00
mattn
ac79b721c5 Add 'c' for comment 2013-10-29 22:09:06 +09:00
mattn
a765fe7b82 imageSize for css. related issue #155 2013-10-25 22:57:42 +09:00
mattn
036b37fb64 Added test for #164 2013-10-22 13:24:50 +09:00
mattn
c9b8c2edcb Fixes item number in group. Closes #164 2013-10-22 13:21:32 +09:00
mattn
57de05e041 Update README 2013-10-22 12:02:00 +09:00
mattn
ea1b779868 s/ExpandWord/expandWord/g
s/CompleteTag/completeTag/g
Ready for next/prev item
2013-10-22 12:00:04 +09:00
mattn
ed7ab5fd49 user_emmet_install_global to off to install as global 2013-10-22 11:59:42 +09:00
mattn
c588b72fc1 Merge pull request #160 from eugene-p/master
lorem did not pick up count always defaulting to 30
2013-10-17 17:26:45 -07:00
Yauheni(Eugene) Patsiomkin
c78a2ff435 lorem did not pick up count always defaulting to 30 2013-10-17 15:41:42 -06:00
mattn
6baf3c1210 Expand | just for snippets 2013-10-15 10:21:24 +09:00
mattn
c1691caa6a Fixes tests 2013-10-15 10:21:05 +09:00
mattn
4c371b5fa6 Added emmet#expandAbbrIntelligent() to you to do:
imap <expr> <tab> emmet#expandAbbrIntelligent("\<tab>")
2013-10-15 09:26:25 +09:00
mattn
32a1dac905 Added emmet#isExapandable(). related issue #156 2013-10-15 09:13:07 +09:00
mattn
ef2cd77d40 Fixes parsing brackets. closes #157 2013-10-14 22:11:34 +09:00
mattn
0f2a0ed1e8 Fixes test 2013-10-14 22:11:26 +09:00
mattn
89dd2b7e71 Badge 2013-10-02 11:28:08 +09:00
mattn
6a06f58a5e Remove annoying type="text/css" from link:css and link:print snippet. Closes #152 2013-10-01 09:31:40 +09:00
mattn
445ca239ad Remove debug comment 2013-09-26 09:59:47 +09:00
mattn
bd4c1bfaef Expand paren when type is css 2013-09-26 09:57:06 +09:00
mattn
f8095a65dd Expand paren 2013-09-25 22:56:34 +09:00
mattn
9c17334509 Get image paths that is relative location from the current buffer. Related issue #150 2013-09-19 02:03:00 +09:00
mattn
9475526c1f Possible to disable definition of :Emmet command. Closes #147 2013-09-10 19:42:21 +09:00
mattn
5d90a2c83d Restore cursor position on insert-mode 2013-09-09 21:19:38 +09:00
mattn
a5313498d7 No need to capture submatches 2013-09-02 16:32:15 +09:00
mattn
8f1775cf02 <html lang="ja></html> can't toggle comment 2013-08-27 19:34:08 +09:00
mattn
44af2e417d Fixes toggle comment. <meta charset="utf-8"> make it hang 2013-08-27 12:41:59 +09:00
mattn
fcf0f567be Use i_CTRL-R= instead of <esc>a 2013-08-25 23:53:36 +09:00
mattn
ebba5bf1e2 Fuzzy search 2013-08-25 01:30:21 +09:00
mattn
e8e9877cfc Fixes tests 2013-08-22 20:32:01 +09:00
mattn
9d7a3d4a44 Add new option g:emmet_docroot to specify map of document root.
let emmet_docroot = {
\  'c:/dev/vim-jp.github.com/': 'http://vim-jp.org/',
\  'c:/dev/mattn/': 'http://mattn.kaoriya.net/',
\}

When getting image size of '/path/to/file.jpg' and current html file is
'c:/dev/mattn/foo/bar/index.html', the image file will be treated as:

  http://mattn.kaoriya.net/path/to/file.jpg
2013-08-22 20:12:49 +09:00
mattn
13994cc066 html5ish 2013-08-22 19:55:53 +09:00
mattn
afd55ad70c Check foldclosed 2013-08-22 19:44:51 +09:00
mattn
056b49c2bd Fixes basedirect/basevalue ex: ul>li.item$@-*5 Should be count down from 5 to 1. 2013-08-20 09:44:29 +09:00
mattn
f2fc51391c Updated docs 2013-08-19 11:07:19 +09:00
mattn
b2561af319 Possible to specify base value. Related issue #144 2013-08-19 11:07:19 +09:00
mattn
6016cf6bdd Merge pull request #141 from drakmail/patch-1
Add basic github-flavored markdown syntax highlighting to README.mkd
2013-08-14 10:47:04 -07:00
mattn
61360ddfdc Add fuzzy search for css. Fixes #142 2013-08-14 13:04:59 +09:00
Alexander
4ab27087f9 Backticks for code blocks 2013-08-13 17:29:29 +04:00
Alexander
6ad2017568 Add basic github-flavored markdown syntax highlighting to README.mkd 2013-08-13 17:19:22 +04:00
mattn
49d2c8280f version bump up 2013-08-13 21:29:01 +09:00
mattn
58c9a51322 Add note for <plug> mapping 2013-08-13 21:18:31 +09:00
mattn
f7a8cce3d5 Unity <plug> mapping names 2013-08-13 21:18:16 +09:00
mattn
a726fe44c8 Merge pull request #137 from DeaR/fix-duplicate-key
Fix duplicate key.
2013-08-13 04:44:44 -07:00
mattn
286869545f Shouldn't be a leading spaces 2013-08-13 20:42:25 +09:00
mattn
5dc6c1a001 Include feature of #129 2013-08-13 20:42:01 +09:00
mattn
57a2ca0e2f Add test for sass indentation bug 2013-08-13 20:21:37 +09:00
mattn
888fdb6699 Fixes sass indentation 2013-08-13 20:16:23 +09:00
mattn
9be8926559 Fixes wrong tests for sass 2013-08-13 18:59:31 +09:00
mattn
8f088c9f73 Add emmet#getFilter() 2013-08-13 18:59:13 +09:00
mattn
c257e09d69 Fixes extends of filter. sass filter doesn't extend css's one 2013-08-13 18:44:42 +09:00
mattn
f18cb41f93 Merge branch 'master' of github.com:mattn/emmet-vim 2013-08-12 22:39:15 +09:00
mattn
40c4b1e0b8 Fixes test 2013-08-12 22:38:45 +09:00
mattn
f1cbe2545f identity can treat URL 2013-08-12 22:38:05 +09:00
mattn
018cab0adc Merge pull request #139 from mikewadsten/master
Fix numbering on nested multiplication
2013-08-12 06:28:53 -07:00
Mike Wadsten
2a5684bac4 Fix numbering on nested multiplication
If an element is being multiplied, its number should reflect the repeating of that element, not the group it belongs in.

----
Example case:

Input: .outer$*3>.inner$*2

Expected output:
<div class="outer1">
  <!-- two DIVs: .inner1, .inner2 -->
</div>
<div class="outer2">
  <!-- two DIVs: .inner1, .inner2 -->
</div>
<div class="outer3">
  <!-- two DIVs: .inner1, .inner2 -->
</div>

Observed output:
<div class="outer1">
  <!-- two DIVs: .inner1, .inner2 -->
</div>
<div class="outer2">
  <!-- two DIVs: .inner2, .inner2 -->
</div>
<div class="outer3">
  <!-- two DIVs: .inner3, .inner3 -->
</div>
2013-08-12 22:28:29 +09:00
mattn
cb869edec4 Add test for #140 2013-08-12 22:27:13 +09:00
mattn
222c509447 Fixes #140 2013-08-12 22:18:11 +09:00
Mike Wadsten
cca5dedd69 Fix numbering on nested multiplication
If an element is being multiplied, its number should reflect the repeating of that element, not the group it belongs in.

----
Example case:

Input: .outer$*3>.inner$*2

Expected output:
<div class="outer1">
  <!-- two DIVs: .inner1, .inner2 -->
</div>
<div class="outer2">
  <!-- two DIVs: .inner1, .inner2 -->
</div>
<div class="outer3">
  <!-- two DIVs: .inner1, .inner2 -->
</div>

Observed output:
<div class="outer1">
  <!-- two DIVs: .inner1, .inner2 -->
</div>
<div class="outer2">
  <!-- two DIVs: .inner2, .inner2 -->
</div>
<div class="outer3">
  <!-- two DIVs: .inner3, .inner3 -->
</div>
2013-08-09 22:45:42 -05:00
mattn
9791571ff4 Remove default html indentation 2013-08-09 13:06:48 +09:00
DeaR
b9bd4738dc Fix duplicate key. 2013-08-08 18:04:25 +09:00
mattn
6d924eb310 Remove div element for snippets 2013-08-08 12:31:51 +09:00
mattn
e1fecdc77b version bump up 2013-08-08 12:31:46 +09:00
mattn
db7c3bebc8 Merge pull request #135 from joedicastro/master
Fixes #133
2013-08-07 18:32:10 -07:00
joe di castro
7fb711c257 Fixes #133 2013-08-07 18:57:19 +02:00
mattn
455f6f5760 Fixes #131 #134 2013-08-08 00:47:56 +09:00
mattn
fd7c37d618 rename 2013-08-06 20:00:30 +09:00
mattn
43d5656dca Rename to Emmet.vim! 2013-08-06 19:49:59 +09:00
mattn
5d54856b49 Keep 0, no adding px unit when expanding b0 2013-06-28 09:55:15 +09:00
mattn
0b37e09e5e Fix typo 2013-06-17 16:32:05 +09:00
mattn
53e8b80dfd Fixes links to blogs. Closes #125 2013-06-14 15:12:53 +09:00
mattn
32bb75081c Add doc for lorem+ipsum 2013-06-10 21:18:18 +09:00
mattn
a98478d7dc Add test for #124 2013-06-10 21:08:14 +09:00
mattn
e7460ef2ec Should be all ${cursor} in the tokens for m0+bgi+p0. The value is not decided with token, value should be empty. 2013-06-10 21:01:53 +09:00
mattn
daaa9450a6 bg++bg+ 2013-06-10 20:42:00 +09:00
mattn
4221cd94ed Version guard 2013-06-10 20:24:29 +09:00
mattn
8cc33aedf4 Add tests for sass 2013-06-10 19:37:17 +09:00
mattn
32c9eaf0c6 Don't use workaround. remove last ; correctly. Fixes #124 2013-06-10 19:36:17 +09:00
mattn
917a9d4bb3 Should be non-space in default 2013-06-10 19:35:27 +09:00
mattn
ae7d014738 Add last comma 2013-06-10 19:34:36 +09:00
mattn
6619d5078e lorem for japanese 2013-06-06 18:24:15 +09:00
mattn
8e515a11c2 Add custom_expand 2013-06-06 17:32:10 +09:00
mattn
30d304ff1f Add user-defined dollar expression (Merged tang3w's awesome commits) 2013-06-06 12:17:42 +09:00
mattn
ca95069268 Fix typo 2013-06-03 22:29:26 +09:00
mattn
857ecdb813 Fix typo 2013-06-03 22:27:41 +09:00
mattn
aabea8343f Oops 2013-06-03 12:13:25 +09:00
mattn
64b64e6bf8 Lorem Ipsum 2013-06-03 12:06:12 +09:00
mattn
dd16ce3b0b Merge pull request #123 from shlomif/master
Grammar corrections.
2013-05-15 17:00:13 -07:00
Shlomi Fish
1d6a0917dc Correct grammar in the tutorial. 2013-05-15 19:03:50 +03:00
mattn
6dfd49a31f Merge pull request #122 from shlomif/master
Remove trailing space + Grammar Corrections.
2013-05-15 06:30:54 -07:00
Shlomi Fish
f128d1013b [README] Correct some grammar problems. 2013-05-15 16:25:19 +03:00
Shlomi Fish
3b8f3ac778 Remove trailing space. 2013-05-15 16:18:25 +03:00
mattn
b162859ca8 Fix indentation 2013-05-08 10:17:22 +09:00
mattn
62c6622153 Fix attributes missing 2013-05-08 10:17:12 +09:00
mattn
4757aae967 Use meta charset. This may occur some problem. For example charset=Windows-31J won't work correctly. 2013-05-08 09:28:33 +09:00
mattn
6a68c46d88 Fix lost attributes. Close #121 2013-05-08 09:27:37 +09:00
mattn
8499af4c47 Fixed typo 2013-04-24 21:30:35 +09:00
mattn
03c6771311 Merge pull request #120 from crazymaster/master
Fixed typo.
2013-04-24 05:24:58 -07:00
crazymaster
dad1eb19c3 Fixed typo. 2013-04-24 21:20:33 +09:00
mattn
9239eed295 Add test for #98 2013-04-24 20:44:06 +09:00
mattn
6fd2031fa2 Fixed #98 pass to indent to html#toString() 2013-04-24 20:43:15 +09:00
mattn
7c1f881014 Remove blank line 2013-04-23 09:49:52 +09:00
mattn
fb7829ca4b Add test for #118 2013-04-23 09:49:03 +09:00
mattn
bc262ed52b Use group_itemno or itemno that greating. close #118 2013-04-23 09:46:04 +09:00
mattn
25aeb9d1c3 Add test 2013-04-19 13:24:05 +09:00
mattn
1f041e7dd3 Unique attribute names. close #119 2013-04-19 13:22:06 +09:00
mattn
6d07bd9752 Separate rendering type and filetype 2013-04-09 19:18:41 +09:00
mattn
857809e676 Fix guessing filetype 2013-04-09 18:55:21 +09:00
mattn
2aba8dde8b Fix balance tag. close #107 2013-04-09 18:45:18 +09:00
mattn
286788ae88 Add tests 2013-04-09 18:19:03 +09:00
mattn
dc199ba273 Fix $# expands 2013-04-09 18:14:39 +09:00
mattn
f5bb76ba39 Expands $# as content. close #116 2013-04-09 18:05:28 +09:00
mattn
4825e6b6c9 Fix order of attributes. close #117 2013-04-09 10:39:31 +09:00
mattn
f08061ec20 Fix imageSize 2013-04-06 22:58:20 +09:00
mattn
bc5903d69c Fix attrs_order 2013-04-06 22:41:08 +09:00
mattn
f1daca4fa5 Fix parse image size 2013-04-06 22:40:19 +09:00
mattn
7f674cd356 Fix tests 2013-04-06 22:33:23 +09:00
mattn
f86c34fbe8 Fix parseTag 2013-04-06 22:31:53 +09:00
mattn
39a9986627 Fix toggleComment 2013-04-06 22:16:23 +09:00
mattn
c0e0451489 Fix tests 2013-04-06 22:00:46 +09:00
mattn
77e2bd3c4e Add default attributes 2013-04-06 22:00:38 +09:00
mattn
62f0a02346 ditto 2013-04-06 21:44:27 +09:00
mattn
f99392847f Fix checking attributs 2013-04-06 21:41:23 +09:00
mattn
24eaace730 Avoid to duplicate attributes 2013-04-06 21:39:53 +09:00
mattn
7aecdc809d Merge pull request #114 from mgrubb/keep-attribute-order
Keep defined order of HTML attributes
2013-04-06 05:37:49 -07:00
Michael Grubb
594ca8e767 Added list to keep order of added attributes
Preloads this list with 'id' and 'class' to always sort those first
As attributes are parsed, append the names to the list.
Change toString function to loop over attribute list instead of keys.
2013-04-06 00:04:37 -05:00
mattn
6a84397073 Merge pull request #113 from avinash/master
The zencoding folder also needs to be copied to ~/.vim/autoload
2013-03-27 02:13:09 -07:00
Avinash Meetoo
e5ff2df906 The zencoding folder also needs to be copied to ~/.vim/autoload 2013-03-27 13:08:34 +04:00
mattn
59c2fb6647 Check bundled type at the first 2013-03-26 12:48:02 +09:00
mattn
82c09728d7 Fix checking type for expanding abbreviation. Also move types htmldjango/drupal into default settings. 2013-03-26 12:43:43 +09:00
mattn
0e4fe62138 Merge pull request #106 from Poltergeist/master
Added less support
2013-02-19 17:47:40 -08:00
Philipp Hinrichsen
73386514ea added less support 2013-02-18 13:20:19 +01:00
mattn
dc65299159 add zencoding_use_identify to disable. default is 1. 2013-02-13 09:02:43 +09:00
mattn
77c863af95 Merge pull request #104 from dpino/fast-image-size
Use command 'identify' (if supported) to get the size of a local image
2013-02-12 15:52:50 -08:00
Diego Pino
760d00cb89 Use function 'executable' to check if command 'identify' is available 2013-02-08 22:38:11 +01:00
Diego Pino
c088101cb7 Use command 'identify' to retrieve the size of a local image
* Command 'identify' is provived by ImageMagick
2013-02-07 18:32:59 +01:00
mattn
8c072f6a3b fix typo. 2013-01-22 14:14:28 +09:00
mattn
7aee52d710 Merge pull request #101 from snowmantw/patch-1
Update doc/zencoding.txt
2013-01-21 20:46:20 -08:00
mattn
8734406ab6 Merge pull request #100 from snowmantw/master
Optional ZenCoding functions in different modes.
2013-01-21 20:46:03 -08:00
Greg Weng
0d4bc41f03 Update doc/zencoding.txt 2013-01-22 12:42:41 +08:00
Greg Weng
8862640291 Update README.mkd 2013-01-22 11:23:25 +08:00
Greg Weng
97b753223e Update README.mkd 2013-01-22 11:22:53 +08:00
Greg Weng
2d3a46238b Optional zencoding functions in different modes. 2013-01-22 11:18:44 +08:00
Greg Weng
ab1be77b86 Update README.mkd 2013-01-22 11:15:29 +08:00
mattn
27350c3672 fix guessing utf-8 2013-01-11 09:51:32 +09:00
mattn
8c108ad27d use lower case 'html' for <DOCTYPE HTML> 2013-01-07 12:07:05 +09:00
mattn
f6c5a8c717 fix balance inward. 2012-12-04 10:51:32 +09:00
mattn
ac43ff8cd9 remove semi-colon in sass. 2012-11-06 20:22:47 +09:00
mattn
70fe3aa22c version bump up. 2012-11-02 12:24:22 +09:00
mattn
9b3643796a fix. 2012-11-02 12:14:38 +09:00
mattn
40107b67c4 gh-pages. 2012-11-02 12:09:51 +09:00
mattn
77855c4fe1 add snippets for sass. 2012-10-24 11:27:34 +09:00
mattn
f0ba3ef4a5 fix fc filter. 2012-10-24 11:22:55 +09:00
mattn
eed6b2db44 fix fc filter. 2012-10-24 11:21:17 +09:00
mattn
7a25848537 add tests. 2012-10-24 11:13:43 +09:00
mattn
672af42b71 support (bg+)+c like format. 2012-10-24 11:13:34 +09:00
mattn
95455cc4c8 move cursor to eol if value was set. 2012-10-24 10:34:30 +09:00
mattn
34ce1afda0 add tests. 2012-10-24 10:29:20 +09:00
mattn
9c02c521f1 fix: em/p units. remove debug message. 2012-10-24 10:29:07 +09:00
mattn
bd8296d27c support m10-5 like format. 2012-10-24 10:20:25 +09:00
mattn
df2b758819 fix test. 2012-10-16 22:41:14 +09:00
mattn
6b8e9720cf fix. 2012-10-16 22:40:21 +09:00
mattn
e5baec0d46 Disable completion of unit for z(z-index). This workaround should be removed. 2012-10-16 17:37:38 +09:00
mattn
551740c720 add note. 2012-10-16 17:15:50 +09:00
mattn
3d7138f3ae add tests. 2012-10-16 17:14:31 +09:00
mattn
272bad5c53 treat WORD. 2012-10-16 17:14:26 +09:00
mattn
6575f65eaf support linear gradient. 2012-10-16 17:07:47 +09:00
mattn
e4bbc7fcd4 add test. 2012-10-16 16:21:02 +09:00
mattn
cc7a2ecf38 support ^ 2012-10-16 16:19:28 +09:00
Charles McGarvey
68f6e1851a add option for customizing the empty tag suffix
Example: To expand the br tag as <br/> instead of the default <br />, put this
in your .vimrc:

let g:user_zen_settings = {
\  'html': {
\    'empty_element_suffix': '/>',
\  },
\}
2012-09-01 13:09:50 -06:00
Charles McGarvey
e7af8d0793 make snippet expanding obey user tab settings 2012-09-01 13:03:59 -06:00
mattn
72e10f85fe fix cursor placing for haml & slim. close #92 2012-08-23 11:39:28 +09:00
mattn
b45b08f5e8 fix jpeg decoder. 2012-08-02 11:47:25 +09:00
mattn
b731410946 fix indent. 2012-07-27 09:13:34 +09:00
mattn
f60a983ae9 retab. 2012-07-26 14:35:42 +09:00
mattn
5c3abc98a2 fix indent: when wrap inner text with block element, it don't append indent. close #90 2012-07-26 14:16:35 +09:00
mattn
7ad7c1032e escape indent character if it's like '\t' (not "\t"). however, it won't beuseful for me. 2012-07-26 08:58:08 +09:00
mattn
2393c3772a escape filter to be possible to specify regexp. 2012-07-23 20:54:47 +09:00
mattn
2ad5bddc8c filter to split to separated columns with wrap-with-abbreviation. 2012-07-23 20:48:49 +09:00
mattn
267b428943 add test. 2012-07-17 16:19:57 +09:00
mattn
7f38e6f78e version bump up. 2012-07-17 15:30:59 +09:00
mattn
2e3769f5d8 version bump up. 2012-07-17 15:30:44 +09:00
mattn
b46410cf05 fixed back to parent nest. close #88 2012-07-17 15:29:51 +09:00
mattn
d5a3582b6a behave wrap with abbr if dollar_expr is set. 2012-07-06 16:28:06 +09:00
mattn
8209775129 add new option dollar_expr that don't replace $ to numbers. 2012-07-06 13:39:08 +09:00
mattn
14ba403bf2 fixed bug that '#' was appended with input:text in haml. 2012-07-03 10:36:09 +09:00
mattn
5244c6ec5e fix test. 2012-07-02 13:14:23 +09:00
mattn
490802965d fix escape filter. close #85 2012-07-02 10:03:43 +09:00
mattn
689ff1efab fix test. 2012-06-29 09:57:27 +09:00
mattn
855e1a73df add lang.vim 2012-06-29 09:56:15 +09:00
mattn
255902037d cache result of file types checking. 2012-06-29 09:54:58 +09:00
mattn
61a261ef89 check empty. 2012-06-29 09:19:46 +09:00
mattn
e1e79f3d25 fix indent. 2012-06-28 22:10:44 +09:00
mattn
c55e379172 fix analyzing jpeg image size. 2012-06-28 22:10:27 +09:00
mattn
8194ee6683 rewrite html#balanceTag. 2012-06-22 14:47:12 +09:00
mattn
43a9e6f962 fix inline_elements/block_elements. 2012-06-20 12:42:01 +09:00
mattn
c1ce62261f fix indent for wrapped text. 2012-06-20 12:41:40 +09:00
mattn
57754d9506 open folding. close #83 2012-06-20 11:43:58 +09:00
mattn
264df14c43 treat as scss. 2012-06-13 22:11:17 +09:00
mattn
8d10026f61 orz 2012-06-13 22:07:55 +09:00
mattn
aedd9026f0 hahaha 2012-06-13 22:07:18 +09:00
mattn
403058a97d remove last ; 2012-06-13 22:06:45 +09:00
mattn
79c60d1cf5 add sass support. (really?) 2012-06-13 22:04:57 +09:00
mattn
09b6efb86b ; needed. 2012-06-13 22:00:41 +09:00
mattn
af0e4f1166 s/sass/scss/g 2012-06-13 21:58:57 +09:00
mattn
ca4675c02f add sass support. 2012-06-13 21:45:58 +09:00
mattn
24e65cd412 default filetype. 2012-06-13 21:45:38 +09:00
mattn
bddc3f9ff5 check encoding more smart. 2012-06-13 18:44:45 +09:00
mattn
05688356b3 fix indent for ${child}. 2012-06-13 18:21:30 +09:00
mattn
16e3a95d7f fixed ${nr}. and fixed multi-line text for haml & slim. 2012-06-13 18:02:23 +09:00
mattn
65c8fe1d23 missing } 2012-06-13 17:36:52 +09:00
mattn
e5b1e29964 fix indent for multiplier items. 2012-06-13 17:20:36 +09:00
mattn
968afb8cbd fix numbering. 2012-06-12 18:01:19 +09:00
mattn
758f96e171 fix numbering. 2012-06-12 18:00:44 +09:00
mattn
b61feb2f76 why call in several time. 2012-06-11 20:02:12 +09:00
mattn
1ddb427987 fix detecting eol. 2012-06-11 19:24:55 +09:00
mattn
d19b2b4fcd fix snippets for haml & slim. 2012-06-11 19:15:45 +09:00
mattn
5011ea1dc6 fix numbering. 2012-06-11 18:21:05 +09:00
mattn
edbf970d03 add test. 2012-06-11 17:58:44 +09:00
mattn
3fc634d532 add test. 2012-06-11 17:57:11 +09:00
mattn
c85ae9df08 add tests. 2012-06-11 17:54:24 +09:00
mattn
ba8571bad6 fix test. 2012-06-11 17:51:39 +09:00
mattn
15c3f99c68 fix: {item number $ ${nl}}*5 2012-06-11 17:41:41 +09:00
mattn
fc604fc4b0 add test. 2012-06-11 11:34:38 +09:00
mattn
dcccfc6881 fix group item number. close #25 2012-06-11 11:32:59 +09:00
mattn
c35a379b27 add tests. 2012-06-11 10:14:38 +09:00
mattn
8551b28a74 fix indent. close #27 2012-06-11 10:05:41 +09:00
mattn
4c56e1146e fix tests. 2012-06-11 09:12:07 +09:00
mattn
b696d02b68 version bump up. 2012-06-10 02:25:27 +09:00
mattn
915726a88d fix indent for wrap with abbreviation. 2012-06-10 02:11:16 +09:00
mattn
01b6732fd6 no need to add cursor when has children. 2012-06-10 02:02:56 +09:00
mattn
b75f89ab57 add cursor position. 2012-06-10 01:57:34 +09:00
mattn
b62af86318 fix tests. 2012-06-10 01:55:28 +09:00
mattn
d5145397cb new style formatter. 2012-06-10 01:55:16 +09:00
mattn
19f984b165 update doc. 2012-06-07 12:55:48 +09:00
mattn
faaaed9840 new feature, add code pretty. 2012-06-07 12:50:07 +09:00
mattn
d71acb2c22 fix comment filter. 2012-06-07 11:54:37 +09:00
mattn
f5c6ad10dc bits fix unittest. 2012-06-06 20:43:35 +09:00
mattn
c4494a24f6 colorfull! 2012-06-06 13:05:29 +09:00
mattn
1a9b7d2805 check top level node or not. close #80 2012-06-06 12:09:49 +09:00
mattn
19db2eebe5 reload after workarounds. 2012-06-06 12:08:10 +09:00
mattn
f6f4749be9 modify test suite. 2012-06-05 15:59:02 +09:00
mattn
07d9400fbb move tests into here documents. 2012-06-05 15:29:00 +09:00
mattn
70e54ff88e modify test suite. 2012-06-05 15:17:54 +09:00
mattn
73e599e294 oops... 2012-06-05 14:47:57 +09:00
mattn
0f57b90bf9 fix haml splitJoinTag. 2012-06-05 10:42:27 +09:00
mattn
c53d5a2971 add test for splitJoinTag for haml & slim. 2012-06-05 10:42:16 +09:00
mattn
843e99c883 fix behavour to toggle. 2012-06-05 01:15:02 +09:00
mattn
b8ba003728 don't move down. 2012-06-05 01:14:51 +09:00
mattn
10687b23ac done. 2012-06-04 22:59:06 +09:00
mattn
9835978968 splitJoinTag for haml & slim. 2012-06-04 22:58:01 +09:00
mattn
85b6ed4349 add some tests. 2012-06-04 18:10:31 +09:00
mattn
2139620edf add some tests. 2012-06-04 18:03:15 +09:00
mattn
7967655b9c add indent spaces. 2012-06-04 17:22:13 +09:00
mattn
4dfd07003e removeTag for haml & slim. 2012-06-04 17:12:31 +09:00
mattn
d3f4db7367 calculate 'indentation' from shiftwidth. close #78 2012-06-04 16:37:45 +09:00
mattn
3d3ae065eb add :Zen command. 2012-06-03 01:21:25 +09:00
mattn
1efd8a094f move splitJoinTag into each types. 2012-06-03 00:39:05 +09:00
mattn
11af392af3 avoid to move to </a>|</span>. 2012-06-03 00:31:17 +09:00
mattn
2ff5526a0c check text node or not. 2012-06-03 00:14:42 +09:00
mattn
7b0c846018 fix re-set parent of brother node. all tests are passed again! 2012-06-02 23:06:28 +09:00
mattn
80fda7de36 some tests are possible to pass. 2012-06-02 09:26:27 +09:00
mattn
4c33c082c8 start to fix formatting. 2012-06-01 18:58:13 +09:00
mattn
ddf38f4e99 make anchor. 2012-06-01 13:31:47 +09:00
mattn
75d229b320 balanceTag for haml & slim. 2012-06-01 11:59:53 +09:00
mattn
e80ce9a642 fix tests. 2012-06-01 03:47:25 +09:00
mattn
b846bc72b8 ah, I've done it already. 2012-05-31 22:07:44 +09:00
mattn
a7e6a7ae03 update TODO. 2012-05-31 22:07:31 +09:00
mattn
99585c507c anchorizeURL. 2012-05-31 22:07:05 +09:00
mattn
ace1bc521a fix attribute quote. 2012-05-31 22:04:32 +09:00
mattn
d484c131b9 oops. 2012-05-31 19:26:40 +09:00
mattn
04b34844f1 add function to get snippets candidates for completion. thanks: https://gist.github.com/469369 2012-05-31 19:25:21 +09:00
mattn
c3785c4a1a update docs. 2012-05-31 19:20:49 +09:00
mattn
9760bc0959 add TODO 2012-05-31 18:18:13 +09:00
mattn
7fe889d214 moveNextPrev 2012-05-31 17:47:14 +09:00
mattn
06dd83dad3 fix toggleComment. 2012-05-30 22:08:07 +09:00
mattn
dd44d64d56 check region. 2012-05-30 22:04:46 +09:00
mattn
b689b7a6e5 balanceTag. 2012-05-30 22:01:32 +09:00
mattn
c2cf315a05 fix toggleComment for css. 2012-05-30 21:36:59 +09:00
mattn
15a655a415 toggleComment for haml. 2012-05-30 21:15:41 +09:00
mattn
a1731c718d toggleComment for slim 2012-05-30 21:12:34 +09:00
mattn
0330ce39b4 toggleComment. 2012-05-30 21:00:59 +09:00
mattn
e3f72a588a camelcase. 2012-05-30 20:40:20 +09:00
mattn
9295915002 fix test. 2012-05-30 20:28:04 +09:00
mattn
87def4ce94 imageSize for haml. 2012-05-30 20:24:40 +09:00
mattn
ae2d88eed8 imageSize for slim 2012-05-30 20:17:19 +09:00
mattn
6751400cce remove debug log. 2012-05-30 19:53:28 +09:00
mattn
57e43e4833 fix skipping tags. 2012-05-30 19:22:26 +09:00
mattn
14fb367409 move utils. 2012-05-30 19:16:31 +09:00
mattn
c8ec156876 find autoload/zencoding/lang/xxx.vim 2012-05-30 19:07:53 +09:00
mattn
98f716c4d1 mv zencoding/xxx.vim to zencoding/lang/xxx.vim 2012-05-30 19:02:10 +09:00
mattn
b18d8ce9ab fix finding tokens. 2012-05-30 09:05:46 +09:00
mattn
24a0418274 oops. 2012-05-29 08:51:07 +09:00
mattn
1b42bbd78e version bump up. 2012-05-29 08:50:07 +09:00
mattn
8ec50c24f5 add test. 2012-05-29 08:49:13 +09:00
mattn
0d2026b1f1 update date. 2012-05-29 08:49:04 +09:00
mattn
0a4e2db3cc fix finding tokens. 2012-05-29 08:45:31 +09:00
mattn
f4d804dbaf version bump up. 2012-05-28 17:25:02 +09:00
mattn
17724b9522 fix begining of tokens. 2012-05-28 17:24:00 +09:00
mattn
7b6341f88b modify doc. 2012-05-28 10:23:57 +09:00
mattn
316923ecbe modify doc. 2012-05-28 10:23:38 +09:00
mattn
b0732a00d0 version bump up. 2012-05-28 10:21:58 +09:00
mattn
08666e545d fix findtoken. it occur maxmempattern error. 2012-05-28 09:23:16 +09:00
mattn
33b90dcaf1 interactive tests. 2012-05-23 18:52:32 +09:00
mattn
af3a1acf40 add tests. 2012-05-23 18:34:30 +09:00
mattn
c3ffd8727e guard to endless loop. 2012-05-23 17:34:22 +09:00
mattn
cf8c5b35f7 fix lhs in partial coding. 2012-05-23 17:31:32 +09:00
mattn
aea4becc0e find begining of tokens. 2012-05-23 14:44:12 +09:00
mattn
b13fc41a35 rename functions. 2012-05-23 14:22:17 +09:00
mattn
1b937875b4 support slim. 2012-05-23 14:10:24 +09:00
mattn
72d344174f call dynamicaly. 2012-05-23 12:37:35 +09:00
mattn
d40f63c724 separate files. 2012-05-23 11:47:02 +09:00
mattn
918be7d824 add tests related #18 2012-05-21 18:23:31 +09:00
mattn
13672245b3 remove needless 'a' in balance word. 2012-05-21 17:45:10 +09:00
mattn
9c042e6907 change behaviour. now zencoding-vim expand abbreviation from LAST-WORD. close #18 2012-05-21 17:45:04 +09:00
mattn
e1015e8470 add test. 2012-05-07 16:54:34 +09:00
mattn
4a0e7d1fb2 fix $# contains &. 2012-05-07 16:27:35 +09:00
mattn
104a4b5ac0 fixed character wise selection. 2012-05-07 11:17:35 +09:00
mattn
13f4b677c9 keep whitespace on selection 'v'. related #69 2012-05-06 00:53:05 +09:00
mattn
ad19b79b65 version bump up. 2012-05-02 12:32:01 +09:00
mattn
f1bb86e57e fix wrap with p{ {{ main }} }. close #66 2012-05-02 11:28:29 +09:00
mattn
7453ca403c fixed related issue about wrap with a{{foo}} in #66 2012-05-01 10:07:44 +09:00
mattn
540480bd6b fix related issue #66 2012-04-28 22:23:10 +09:00
mattn
0eddf94b6f refactor test suite. 2012-04-26 01:09:55 +09:00
mattn
bdf8c3ffe1 remove debug message. 2012-04-24 20:54:04 +09:00
mattn
cb7cb86184 replace $# to content in the rest. 2012-04-24 11:41:47 +09:00
mattn
52fbf6d33e prior filetype to inline attribute. 2012-04-24 11:12:35 +09:00
mattn
3e679f8a9a fix issue of text nodes. close #64 2012-04-24 10:43:24 +09:00
mattn
1883fecec0 add test case related #65 2012-04-23 15:26:59 +09:00
mattn
8126a94272 fix abbr expandos. related #65 2012-04-23 15:26:44 +09:00
mattn
f66501ccd1 fix expandos. close #65 2012-04-23 15:06:37 +09:00
mattn
c492fc64f0 don't need conversion. 2012-03-28 18:26:56 +09:00
mattn
01524e272f useragent. 2012-02-21 15:34:58 +09:00
mattn
5efe248f0e fix {} regexp pattern. close issue #58 2012-02-14 19:45:28 +09:00
mattn
3766ec94ea version bump up. 2012-01-31 13:47:47 +09:00
mattn
4d295a516b fixed issue #56. 2012-01-31 13:46:24 +09:00
mattn
e6e89137e2 fix toggleComment. close #55 2012-01-26 10:25:57 +09:00
mattn
62c8a5c39e typo in doc. 2012-01-17 10:28:23 +09:00
mattn
d4c971b7c4 merge lines. close issue #52 2012-01-17 10:24:44 +09:00
mattn
61ca294004 more strictly. 2012-01-11 13:46:57 +09:00
mattn
d7e4896a28 fix imageSize. close issue #53 2012-01-10 17:35:42 +09:00
mattn
6eff2a965f oops. fixed trim filter. 2011-12-16 09:36:06 +09:00
mattn
c9398065c8 added trim filter. 2011-12-16 09:35:08 +09:00
mattn
a386d41384 fix wrap 2011-12-15 02:58:50 +09:00
mattn
65588192a4 Merge branch 'master' of github.com:mattn/zencoding-vim 2011-12-15 02:30:10 +09:00
mattn
732a8aa1d1 fix parser to match class like ".b-block__subitem". close #50 2011-12-07 09:12:31 +09:00
mattn
1f4dbe3917 check normal mode or not. 2011-12-05 14:50:47 +09:00
mattn
513578327c fix cursor position. 2011-12-05 12:40:38 +09:00
mattn
0e104e30f5 visual line. 2011-12-01 11:51:48 +09:00
mattn
1bb674d731 fixed join tag for xsl. close #48 2011-11-30 09:11:14 +09:00
mattn
3dac32d31c I perfer the name. 2011-11-27 19:23:59 +09:00
mattn
475d1b0a6f Merge pull request #47 from fersho311/master
Started a readme File
2011-11-27 02:16:19 -08:00
Song Zheng
aca236d40d almost complete readme 2011-11-25 22:07:28 -08:00
Song Zheng
304fb93d16 new formatting 2011-11-25 21:10:46 -08:00
Song Zheng
66b00b5e40 fixed a little format 2011-11-25 21:08:56 -08:00
Song Zheng
6f7d59c030 added readme file 2011-11-25 21:04:00 -08:00
mattn
16a09f81c1 attribute index like node[attr$] 2011-11-25 22:28:45 +09:00
mattn
74331b5545 remove sass. include behavior of css. added !important; 2011-11-25 19:36:42 +09:00
mattn
f7047e7520 don't do 'gvc' when not visual mode. closes issue #46 2011-11-25 18:19:27 +09:00
mattn
afabf9d4a0 erase selected lines. 2011-11-24 20:58:46 +09:00
mattn
c1ea1e576b avoid to expand '<>' in css. 2011-11-24 16:06:36 +09:00
mattn
e7b6ce30f1 add option 'use_pipe_for_cursor'. fixes issue #38 2011-11-24 15:51:24 +09:00
mattn
4b4aef917b fix bug that break multibyte characters when using wize selection. 2011-11-24 15:28:14 +09:00
mattn
e123792281 oops. fixed normal {foo}. 2011-11-24 15:09:06 +09:00
mattn
ba5c040894 support of blockwize selection. 2011-11-24 15:07:03 +09:00
mattn
e16879217d wrap normaly in last tag when don't contain "*" for wrap abbreviation. 2011-11-24 14:27:16 +09:00
mattn
32aacd57ab set config back at last. 2011-11-24 14:26:58 +09:00
mattn
b05a4e281f fixed conversion of tag name like h${sometext}*3. 2011-11-24 12:35:43 +09:00
mattn
ec071d3b63 fix toggle comment. 2011-11-24 11:55:28 +09:00
mattn
896520d48e version bump up. 2011-11-22 21:38:46 +09:00
mattn
6b65455e94 oops. fixed foo+ style expandos. 2011-11-22 21:38:01 +09:00
mattn
6521d273fb version bump up. 2011-11-22 19:09:07 +09:00
mattn
ac6d7fb269 remove debug message. 2011-11-22 19:08:03 +09:00
mattn
0072354226 fix expandos. 2011-11-22 19:07:21 +09:00
mattn
99b6e2d292 fix separator for css. 2011-11-21 15:16:47 +09:00
mattn
115f68df62 version bump up. 2011-11-08 11:11:06 +09:00
mattn
accc9934d2 fixed contents parser. 2011-11-08 11:09:54 +09:00
mattn
7bed58f537 typo in TUTORIAL. fixed #39 2011-11-02 15:58:07 +09:00
rabidpraxis
3ce2d835be added sass compatibilty 2011-10-26 21:21:44 +09:00
mattn
47a4d1ffa3 fix analyzing content summary. 2011-10-26 21:21:14 +09:00
mattn
8f8cd747b2 Merge branch 'master' of github.com:mattn/zencoding-vim 2011-10-25 13:50:57 +09:00
mattn
b0b2323d3a update. 2011-10-25 13:50:43 +09:00
mattn
773f87b62b version bump up. 2011-10-22 23:54:41 +09:00
mattn
eaa447fb40 support: Upgraded "Wrap With Abbreviation" action 2011-10-14 21:35:38 +09:00
mattn
f8f9dcd72e replace $# as line for wrap abbreviation. 2011-10-14 18:58:12 +09:00
mattn
450768be48 fix incomplete string. 2011-10-12 11:13:58 +09:00
mattn
54924cb5d5 g:zencoding_curl_command 2011-09-26 13:30:57 +09:00
mattn
f34dd90f73 oops. 2011-09-22 20:41:54 +09:00
mattn
44619b2584 oops. :set ff=unix 2011-09-22 17:18:30 +09:00
mattn
775dfb99e2 oops. version mismatch. 2011-09-22 15:37:25 +09:00
mattn
d9957b0baf version bump up. 2011-09-22 15:31:36 +09:00
Hugues Lismonde
c5db7c80d2 SASS support 2011-09-22 15:20:18 +09:00
mattn
f844ab85b0 unitetest for xsd. 2011-09-22 15:16:21 +09:00
Toshiyuki Ogura
43f36d6069 fix typo 2011-09-22 15:13:00 +09:00
Toshiyuki Ogura
8d6256e1f8 add xsd 2011-09-22 15:12:48 +09:00
Jesse Luehrs
8f290b913e oops, fix the regex (clear out everything before matched tags) 2011-09-22 15:11:44 +09:00
Jesse Luehrs
25ecc2ca99 don't screw up expansion if there's already an existing tag (#23)
<p>a>b_</p>

now expands to

<p><a><b>_</b></a></p>

rather than

<p>
  <a><b></b></a>
</p></p>
2011-09-22 15:08:10 +09:00
mattn
95df77c224 fix unittest.vim 2011-09-05 01:06:19 +09:00
mattn
e799b8ead5 Merge pull request #33 from fiskus/master
border radius
2011-08-18 17:01:26 -07:00
Maxim Chervonny
d67f118b13 border-radius rules brought to conformity with official ZenCodingWiki 2011-08-18 18:26:04 +04:00
mattn
88d89910e2 Merge pull request #30 from serverhorror/fix-submodule-usage
fix submodule usage
2011-05-08 07:10:11 -07:00
Martin Marcher
6f584f3419 fix submodule usage
when using pathogen and git submodules this keeps git status from
complaining about untracked content
2011-05-07 20:51:41 +02:00
mattn
dcc75d8a19 Merge branch 'master' of github.com:mattn/zencoding-vim 2011-04-09 00:36:51 +09:00
mattn
7ccba3e1bb typo 2011-04-09 00:36:27 +09:00
mattn
4bbbe1d3de enable fc filter for css. fix issue #21 2011-02-24 19:04:00 +09:00
mattn
2091f33c82 django template 2011-02-23 15:44:33 +09:00
mattn
77e480c140 remove $line$ at the last. 2011-02-23 15:40:49 +09:00
mattn
aa7d54e0f0 fix haml test. 2011-02-23 15:25:13 +09:00
mattn
3ece783f74 gif size was swapped. 2011-01-25 09:20:42 +09:00
Andy Ferra
3ba6851c1a removed whitespace removal behvavior for empty tags 2011-01-19 11:58:42 -07:00
mattn
9a941aad9b fix broken wrap expanding. 2011-01-14 09:23:08 +09:00
mattn
8b8aa71043 version bump 2011-01-13 14:52:26 +09:00
mattn
e4dc78bc9b fixed wrap expanding with '&'. 2011-01-12 11:49:03 +09:00
mattn
cda02374cd add test for .content{Hello!} 2011-01-06 11:16:55 +09:00
mattn
96e256df37 expand .content to class="content" 2011-01-06 11:13:44 +09:00
mattn
1bbf5b06ad no more scroll 2011-01-06 11:06:54 +09:00
mattn
72ef007a84 add test for haml a*3 2011-01-06 10:51:25 +09:00
mattn
d9b9733bd0 fix issue #16 2011-01-06 10:48:32 +09:00
mattn
771343cf24 add test for bg+ 2011-01-06 10:37:24 +09:00
mattn
eefd49426f fix issue #17. 2011-01-06 10:36:39 +09:00
mattn
555aee4d3d version bump. 2010-11-22 21:15:45 +09:00
mattn
0dcce23ef0 fix parsing #{{foo}} and .{{bar}} 2010-11-22 21:14:06 +09:00
mattn
1e63393779 fixed parse #foo{bar} or .foo{bar} 2010-11-22 20:59:12 +09:00
mattn
19bfc84054 possible to specify charset. default value is UTF-8 . 2010-11-22 20:45:13 +09:00
mattn
fe99a324a9 fix staff. 2010-11-18 12:44:33 +09:00
mattn
010a744683 fix staff 2010-11-18 12:44:06 +09:00
mattn
b960a0d6ab version bump. 2010-11-18 12:43:33 +09:00
mattn
17dfb732a8 add doc. 2010-11-18 12:32:06 +09:00
mattn
a722f513e1 use omnifunc. 2010-11-18 12:24:21 +09:00
mattn
295bceb85a test marker 2010-11-16 19:31:14 +09:00
mattn
d4287a23d4 add tests. 2010-11-16 19:19:26 +09:00
mattn
fd46018e06 ignore to use abs(). 2010-11-10 01:28:14 +09:00
mattn
4cf35d61e0 add staff for release in Makefile. 2010-11-10 01:23:10 +09:00
mattn
6d455bfeae fix unit test. 2010-11-10 01:23:04 +09:00
mattn
cb13e4a07d version bump 2010-11-10 01:15:20 +09:00
mattn
aeb24b1922 install mapping to global. 2010-11-10 01:14:23 +09:00
mattn
e72254f40a oops... zip was empty... orz 2010-11-05 20:44:59 +09:00
mattn
e3a9428c1d version bump 2010-11-05 14:40:14 +09:00
mattn
af324f7db0 update doc 2010-11-05 14:36:04 +09:00
mattn
e6299244b7 gurd 2010-11-05 14:35:53 +09:00
mattn
ca38aaa673 fix unittest 2010-11-05 11:37:07 +09:00
mattn
6d8d5a6ee2 autoloading 2010-11-05 11:14:14 +09:00
mattn
8b98743ff0 move it to plugin folder. 2010-10-14 13:22:14 +09:00
mattn
97e438a40b ignore script tag. 2010-10-08 11:00:25 +09:00
mattn
6d0c90f7d0 remove warning. 2010-10-08 11:00:07 +09:00
mattn
5ed0a7e599 fixed issue #11 2010-10-08 10:40:34 +09:00
mattn
feb6b8ca14 fixed checking whether have mapping. 2010-09-06 09:06:13 +09:00
mattn
16e048aaf4 Merge commit '62ef855ef42e7c0fc9c0' into mustache 2010-08-25 15:53:54 +09:00
Adam Backstrom
51bcdaa181 HTML default_attribute form:upload, setting enctype for forms that get file uploads. 2010-08-06 08:59:38 -04:00
mattn
2d9d13e4bd fix... 2010-08-02 15:31:03 +09:00
mattn
c623a72a39 fixed toggle comment. 2010-08-02 15:11:44 +09:00
mattn
7ac94b6e64 fixed endless loop 2010-08-02 14:58:29 +09:00
mattn
742e115a41 fixed 'toggle comment' 2010-08-02 14:54:13 +09:00
Daniel Schauenberg
62ef855ef4 add support for mustache in tag class 2010-07-06 16:55:52 +02:00
Daniel Schauenberg
748e969191 add unittest for mustache in tag class 2010-07-06 16:55:52 +02:00
Daniel Schauenberg
e6bdb86c2f add mustache sections unit test 2010-07-06 16:55:52 +02:00
Daniel Schauenberg
f77a31b174 add mustache to zen_settings dict 2010-07-06 16:55:52 +02:00
Daniel Schauenberg
a639eee9d8 add support for mustache tags as id 2010-07-06 16:55:52 +02:00
Daniel Schauenberg
0ec7f16fde whitespace fix 2010-07-06 16:55:52 +02:00
mattn
be54da653a fixed wrap included "{}". closes #5. 2010-07-06 23:45:51 +09:00
mattn
4ff2179ee3 use ${lang} 2010-07-03 23:58:47 +09:00
mattn
d7b9436e67 fixed behavior for nested block. like "html:5>#page>(header#globalHeader>(hgroup>h1+h2)+(nav>ul>li*3>a)+(form>p.siteSearch>input+input[type=button]))+(#contents>(#main>(section>h2+p*5)+p.pagetop>a[href=#page])+(#sub>p+(nav>ul>li>a)))+(footer#globalFoooter>(ul>li>a)+(p.copyright>small))" 2010-06-11 11:37:57 +09:00
mattn
de6198ab35 fixed select/option indent. 2010-06-07 21:54:38 +09:00
mattn
22ddd21796 version bump. 2010-05-31 20:09:03 +09:00
mattn
5788d9eb52 use html as default filter. 2010-05-31 20:07:52 +09:00
mattn
85cc6b07a3 my style 2010-05-24 10:02:14 +09:00
mattn
346e5cd99d Merge commit '6bc305a910399423e5c9' 2010-05-24 10:00:08 +09:00
mattn
e3ec54fb21 Merge commit 'b7f309f729c71170313e' 2010-05-24 09:59:49 +09:00
mattn
53871006c1 d:ib should be 'display:inline-block'. 2010-05-21 11:07:16 +09:00
mattn
a75e00c0bf dynamic filter. then, you can customize the filters. 2010-05-21 11:06:14 +09:00
OHASHI Hideya
6bc305a910 support "zensnippet" snippet for non-HTML 2010-05-15 11:18:38 +09:00
OHASHI Hideya
b7f309f729 support ${attr} in snippets 2010-05-15 11:17:22 +09:00
mattn
11b5ffa598 add doc. 2010-05-13 20:13:48 +09:00
mattn
304e0e386b add normal mode of ZenCodingExpandWord. 2010-05-13 20:12:08 +09:00
mattn
157bad472e can't customize key assign of ZenCodingExpandWord. 2010-05-13 20:08:30 +09:00
mattn
afbcac04b4 add the pure vimscript code for 'get image size'. you can use it without perl interface just now. 2010-05-13 10:06:50 +09:00
mattn
f2cb7b112c fixed problem about 'selection' option. 2010-05-11 13:38:48 +09:00
mattn
93104ffff5 version bump 2010-05-10 09:44:42 +09:00
mattn
e649cd2ad8 use v7h"_s instead of v7hs: ignore regsiter. 2010-05-10 09:42:42 +09:00
mattn
b60a67d64e version bump 2010-05-06 19:44:16 +09:00
mattn
0d857c3959 Merge branch 'master' of http://github.com/jk3us/zencoding-vim 2010-05-06 09:12:05 +09:00
mattn
a50d3cfcdb see 4ba6dde573 2010-05-06 09:07:34 +09:00
Jay Knight
7aef89ccd4 Replace $cursor$ regardless of value of 'backspace' setting 2010-05-04 10:37:38 -05:00
mattn
0e3cce60ac use script scope variable. 2010-04-23 01:47:38 +09:00
mattn
3aa240f7b8 typo 2010-03-19 10:05:15 +09:00
mattn
6b8149e726 oops. fixed problem that filter does not work. version bump. 2010-03-17 17:50:09 +09:00
mattn
9f6c077cb8 oops. this call mistake of co-pi-pe in japanese. 2010-03-17 17:46:39 +09:00
mattn
ff77763c0a fixed indent for comment. 2010-03-17 16:49:34 +09:00
mattn
282a3a9958 version bump 2010-03-16 22:11:11 +09:00
mattn
d78b041fd0 stop at failing test. 2010-03-16 22:09:37 +09:00
mattn
66d173288c more test cases. 2010-03-16 22:05:13 +09:00
mattn
0c28ad1791 remove '|' when calling ZenExpand() 2010-03-16 22:04:49 +09:00
mattn
5fb57a28d3 fixed problem that link:css does not become 'link' in php. however it should not be removed in xsl/xml. 2010-03-16 18:37:43 +09:00
mattn
06130914c6 Drastic Changes: include extended resource. this make be possible that php can expand 'html:5'. 2010-03-16 18:18:54 +09:00
mattn
8c2a246bee css comment. 2010-03-16 16:47:21 +09:00
mattn
76b476eb45 enable convertion of '!' to '!important' 2010-03-16 15:50:58 +09:00
mattn
a2a8882f7a treat a[title=TITLE rel] as 'title="TITLE" rel=""'. 2010-03-16 15:35:01 +09:00
mattn
f78d448252 fix doc. 2010-03-15 20:37:45 +09:00
mattn
7f0e2a13d0 use default type for install to ~/.vim/plugin/zencoding.vim 2010-03-15 20:35:21 +09:00
mattn
8c958179a3 fix 'filters' 2010-03-15 20:25:13 +09:00
mattn
bdf2d62559 version++ 2010-03-15 17:27:36 +09:00
mattn
2de194d06c increment/decrement visual block. 2010-03-15 17:20:29 +09:00
mattn
c909e11879 break. 2010-03-15 13:34:42 +09:00
mattn
deeca32153 oops. 2010-03-15 13:33:27 +09:00
mattn
805d715be0 filter is array. 2010-03-15 13:30:47 +09:00
mattn
6571c87336 xsl filter. 2010-03-15 13:21:54 +09:00
mattn
ed3874f065 use user's settings for filter. 2010-03-15 13:00:07 +09:00
mattn
6c4a79e963 rollback: use html specification. 2010-03-15 12:40:35 +09:00
mattn
d9e7b4cf2a use own settings for empty_elements/block_elements/inline_elements. 2010-03-15 12:20:18 +09:00
mattn
8d047d302b Merge branch 'master' of github.com:mattn/zencoding-vim
Conflicts:
	zencoding.vim
2010-03-15 11:54:18 +09:00
mattn
8df0a44996 add test. 2010-03-15 11:52:04 +09:00
mattn
b92c1a37a9 change behavior of type & filters. 2010-03-15 11:44:36 +09:00
mattn
e212a6a696 version++ 2010-03-14 02:45:53 +09:00
mattn
a8ce3841d6 12px 2010-03-14 01:27:28 +09:00
mattn
21b5d07790 use original indent instead of s:zen_settings.indentation for start of the line. 2010-03-14 01:05:48 +09:00
mattn
7068617f92 is not v. it's c! 2010-03-14 00:56:57 +09:00
mattn
d6c82b3f2d fixed problem breaking multibyte when cursor is in a part of line. 2010-03-14 00:33:45 +09:00
mattn
5e1002b3aa Merge branch 'master' of git@github.com:mattn/zencoding-vim 2010-03-13 00:11:32 +09:00
mattn
7e33ea1a7e enable inline javascript. 2010-03-12 19:16:57 +09:00
mattn
1de3fbe918 version++ 2010-03-12 12:03:42 +09:00
mattn
d9976b5d56 fixed indent. 2010-03-12 12:01:27 +09:00
mattn
6712c04459 ins 2010-03-12 11:58:49 +09:00
mattn
c047dba32b add doc that 2 ways to enable zencoding.vim for other languages you using. 2010-03-12 09:48:20 +09:00
mattn
9a4412e816 accept extends type from zen_settings. 2010-03-12 09:42:45 +09:00
mattn
ad794a21f0 Merge branch 'master' of git@github.com:mattn/zencoding-vim 2010-03-11 23:29:18 +09:00
mattn
8eec4c219d version++ 2010-03-11 12:04:45 +09:00
mattn
9fab173af3 attribute may be blank. 2010-03-11 03:05:39 +09:00
mattn
65a64a6e8b fixed indentation and $$$ problem. 2010-03-11 02:44:41 +09:00
mattn
4ba6dde573 add docs submodule. 2010-03-11 02:36:30 +09:00
mattn
37166712b2 fix indent. multiple $$$ problem. 2010-03-11 02:36:15 +09:00
mattn
f7d32c0987 add test for multiple classes. 2010-03-11 02:35:48 +09:00
mattn
e77872ec0b oops: missing support multiple classes. 2010-03-11 01:50:40 +09:00
mattn
c6e7a3038f replace indent space or tab to defined indentation in snippets. 2010-03-10 02:10:51 +09:00
mattn
ca1e9c9b9c enable next/prev in normal mode. 2010-03-09 21:51:47 +09:00
mattn
a1cbb01c78 fixed haml filter to output inner value. 2010-03-09 21:42:23 +09:00
mattn
5c7a135bd4 oops. fixed key assign. 2010-03-09 14:11:00 +09:00
mattn
031a88c4c6 oops 2010-03-09 13:28:44 +09:00
mattn
7b26a71768 version++ 2010-03-09 13:26:35 +09:00
mattn
dbedf03e00 check strict. 2010-03-09 12:51:45 +09:00
mattn
783c6a10f6 fixed doc. 2010-03-09 12:46:19 +09:00
mattn
404609b08a changed leading key '<c-z>' to '<c-y>'. then you'll type '<c-y>,' for expanding abbreviation. 2010-03-09 12:44:02 +09:00
mattn
7d5b6609d3 fixed balance outwize. 2010-03-09 12:11:24 +09:00
mattn
df3eb4ecba remove debug code. 2010-03-09 11:55:35 +09:00
mattn
ac2d5dcd47 resign using recursively call 2010-03-09 11:53:39 +09:00
mattn
8376d08247 make absolute path. 2010-03-09 03:03:13 +09:00
mattn
d74c2928a1 no need to filter. 2010-03-09 02:48:16 +09:00
mattn
69970b1621 remove cursor mark. 2010-03-09 02:46:00 +09:00
mattn
46fd337636 remove cursor. 2010-03-09 02:44:35 +09:00
mattn
72503f954d use region util. 2010-03-09 02:25:50 +09:00
mattn
10457913ea fixed indent. 2010-03-09 02:07:31 +09:00
mattn
b9c63d08e1 enable haml filter. 2010-03-09 01:57:59 +09:00
mattn
af7aeca083 default filter is 'html'. 2010-03-09 01:49:50 +09:00
mattn
e22429aba9 fixed haml filter. 2010-03-09 01:31:14 +09:00
mattn
4c34110628 fixed indent 2010-03-09 00:09:37 +09:00
mattn
0e21c19f6f large change. changed cursor mark to '${cursor}'. 2010-03-08 22:45:53 +09:00
mattn
33d049492b multiline 2010-03-08 21:17:15 +09:00
mattn
7587bf534f add test for haml filter. 2010-03-08 21:16:21 +09:00
mattn
4a4885c7a8 support haml filter. 2010-03-08 21:16:12 +09:00
mattn
3b18a7fc77 fixed issue #1. 2010-03-08 19:43:05 +09:00
mattn
339be72156 typo. 2010-03-08 19:03:47 +09:00
mattn
605f3d8ce3 add doc. 2010-03-08 19:00:52 +09:00
mattn
0d96516ed3 fixed title. and trim strings. 2010-03-08 19:00:42 +09:00
mattn
2e5268f285 more useful anchorize. 2010-03-08 18:45:22 +09:00
mattn
b2dc5ba2d4 parse anchor. 2010-03-08 17:14:25 +09:00
mattn
5f4ed21dde detect type from syntax 2010-03-08 16:56:37 +09:00
mattn
91d0385785 fixed test tool. 2010-03-08 16:23:48 +09:00
mattn
55b93c7aaa support 'fc' filter. 2010-03-08 16:15:53 +09:00
mattn
0aa0356d30 fixed behavior of '*' in wrapping with abbreviation. closes #1 2010-03-08 16:00:46 +09:00
mattn
0f9662bc1b fixed filter that only '|e' 2010-03-08 15:50:07 +09:00
mattn
ada3c0e51a no bufname. 2010-03-08 15:17:13 +09:00
mattn
5a0b8d4e76 supported 'e' filter and 'c' filter. 2010-03-08 15:15:17 +09:00
mattn
249cc98320 inward/outward. 2010-03-08 13:45:49 +09:00
mattn
52d62129ab anchorize URL. 2010-03-08 13:44:28 +09:00
mattn
17e161ef32 restore cursor position. 2010-03-08 13:24:42 +09:00
mattn
92f604e1bd search recursively 2010-03-08 13:17:13 +09:00
mattn
5d143b1974 updated doc. 2010-03-08 12:36:12 +09:00
mattn
99460233b4 fixed balance tag. 2010-03-08 12:26:55 +09:00
mattn
4e26621542 fixed toooooooooooooooooooooooo many bugs! 2010-03-08 12:20:39 +09:00
mattn
b66dfbe365 enable on </foo>. 2010-03-08 11:55:20 +09:00
mattn
3d9fbfd049 hmm. chinese puzzle. 2010-03-08 11:41:49 +09:00
mattn
0baf7df3f3 fixed comment block. 2010-03-08 00:05:57 +09:00
mattn
55df3e1a06 oops 2010-03-06 02:10:16 +09:00
mattn
729634a1b4 fix several bugs. 2010-03-06 02:06:23 +09:00
mattn
ed98e0faa5 fix comment block. 2010-03-05 23:01:32 +09:00
mattn
cb0a48ea32 oops. 2010-03-05 22:44:44 +09:00
mattn
c540355f8e remove debug message. 2010-03-05 22:35:16 +09:00
mattn
818044551a tutor 2010-03-05 22:34:57 +09:00
mattn
f928b2182c remove tag. 2010-03-05 22:33:47 +09:00
mattn
c51e890194 split join tag. 2010-03-05 22:25:57 +09:00
mattn
8118f59eae fixed comment block. 2010-03-05 20:06:03 +09:00
mattn
895147684e include regionutil.vim 2010-03-05 18:58:49 +09:00
mattn
ccbf87b817 ${datetime} 2010-03-05 14:14:22 +09:00
mattn
192fc49720 remove broken code. 2010-03-04 21:11:01 +09:00
mattn
8a2c4f1628 oops. many GLOB(XXXXX) files. orz 2010-03-04 20:55:03 +09:00
mattn
208553fc27 fixed comment block. 2010-03-04 20:27:07 +09:00
mattn
40a44a60c8 text comment block. 2010-03-04 19:39:03 +09:00
mattn
a81f95f02f fixed html tag parser. 2010-03-04 19:16:43 +09:00
mattn
f91c1f4b64 fixed endless loop in zen_imageSize. 2010-03-04 19:09:27 +09:00
mattn
60a8850e7c oops 2010-03-04 19:06:50 +09:00
mattn
5fadd04e14 fixed comment block. 2010-03-04 18:25:20 +09:00
mattn
304586f056 add doc. 2010-03-04 17:33:43 +09:00
mattn
f1e11a5fae add few methods. (drastic) 2010-03-04 17:30:16 +09:00
mattn
671226c005 refact & add image size (in progress) 2010-03-04 03:19:14 +09:00
mattn
ab37be12b1 disable user_zen_settings for unit test. 2010-03-04 03:18:27 +09:00
mattn
cc1845bbad fix doc. 2010-03-03 18:36:19 +09:00
mattn
571654c416 rename 2010-03-03 18:34:08 +09:00
mattn
d314aac8e5 add README 2010-03-03 18:32:42 +09:00
mattn
6f131081df next/prev 2010-03-03 18:32:19 +09:00
mattn
39978b46da fixed doc. 2010-03-03 11:00:50 +09:00
mattn
aa53f1a1b9 oops 2010-03-03 10:59:50 +09:00
mattn
e7727ecd3a inline elements 2010-03-03 10:57:33 +09:00
mattn
10529b0fd2 fixed problem that can't work on the part of multibyte characters. 2010-03-03 10:16:49 +09:00
mattn
3fa5f954b5 fixed test. 2010-03-02 20:11:30 +09:00
mattn
7b53ee106b title should be below of meta-charset. 2010-03-02 14:15:28 +09:00
mattn
b70c4881d9 colorfull 2010-03-01 18:17:50 +09:00
mattn
50cc0229f0 benchmark 2010-03-01 17:59:19 +09:00
mattn
3c4e5deb1c be possible to work as plugin and ftplugin both. 2010-03-01 17:59:08 +09:00
mattn
8de8625b6f test test test. 2010-03-01 15:05:06 +09:00
mattn
dfa521dabd test case. 2010-03-01 15:00:18 +09:00
mattn
71e739e770 grouping. 2010-03-01 14:48:32 +09:00
mattn
d2a98bbc0a load zencoding.vim from unittest.vim 2010-03-01 14:23:10 +09:00
mattn
a84a668b3b add unit tests. 2010-03-01 14:21:29 +09:00
mattn
cacb5b4715 Merge branch 'master' of github.com:mattn/zencoding-vim
Conflicts:
	zencoding.vim
2010-03-01 14:21:03 +09:00
mattn
e3397ed866 separate unit test. 2010-03-01 14:20:13 +09:00
38 changed files with 9755 additions and 3733 deletions

8
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: mattn # Replace with a single Patreon username
open_collective: mattn # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
custom: # Replace with a single custom sponsorship URL

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/doc/tags

4
.gitmodules vendored Normal file
View File

@@ -0,0 +1,4 @@
[submodule "docs"]
path = docs
url = https://git.pick-up.group/VimPlug/emmet-vim-fork.git
branch = gh-pages

11
.travis.yml Normal file
View File

@@ -0,0 +1,11 @@
language: generic
sudo: false
dist: xenial
git:
depth: 10
script:
- uname -a
- which -a vim
- vim --cmd version --cmd quit
- make test

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2019 Yasuhiro Matsumoto
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

15
Makefile Normal file
View File

@@ -0,0 +1,15 @@
all : emmet-vim.zip
remove-zip:
-rm doc/tags
-rm emmet-vim.zip
emmet-vim.zip: remove-zip
zip -r emmet-vim.zip autoload plugin doc
release: emmet-vim.zip
vimup update-script emmet.vim
test:
@-rm -f test.log 2> /dev/null
@vim -N -c "let &rtp .= ',' . getcwd()" -c "so unittest.vim" -c EmmetUnitTest! || cat test.log || exit 1

200
README.mkd Normal file
View File

@@ -0,0 +1,200 @@
# Emmet-vim
[![Build Status](https://travis-ci.org/mattn/emmet-vim.svg?branch=master)](https://travis-ci.org/mattn/emmet-vim)
[emmet-vim](https://mattn.github.io/emmet-vim/) is a vim plug-in
which provides support for expanding abbreviations similar to
[emmet](http://emmet.io/).
![screenshot](https://raw.githubusercontent.com/mattn/emmet-vim/master/doc/screenshot.gif)
## Installation
[Download zip file](http://www.vim.org/scripts/script.php?script_id=2981):
```sh
cd ~/.vim
unzip emmet-vim.zip
```
To install using [pathogen.vim](https://github.com/tpope/vim-pathogen):
```sh
git clone https://github.com/mattn/emmet-vim.git ~/.vim/bundle/emmet-vim
```
To install using [Vundle](https://github.com/gmarik/vundle):
```vim
" add this line to your .vimrc file
Plugin 'mattn/emmet-vim'
```
To install using [Vim-Plug](https://github.com/junegunn/vim-plug):
```vim
" add this line to your .vimrc file
Plug 'mattn/emmet-vim'
```
To checkout the source from repository:
```sh
cd ~/.vim/bundle
git clone https://github.com/mattn/emmet-vim.git
```
or:
```sh
git clone https://github.com/mattn/emmet-vim.git
cd emmet-vim
cp plugin/emmet.vim ~/.vim/plugin/
cp autoload/emmet.vim ~/.vim/autoload/
cp -a autoload/emmet ~/.vim/autoload/
```
## Quick Tutorial
Open or create a New File:
```sh
vim index.html
```
Type ("\_" is the cursor position):
html:5_
Then type `<c-y>,` (<kbd>Ctrl</kbd><kbd>y</kbd><kbd>,</kbd>), and you should see:
```html
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
_
</body>
</html>
```
[More Tutorials](https://raw.githubusercontent.com/mattn/emmet-vim/master/TUTORIAL)
## Enable in different mode
If you don't want to enable emmet in all modes,
you can use set these options in `vimrc`:
```vim
let g:user_emmet_mode='n' "only enable normal mode functions.
let g:user_emmet_mode='inv' "enable all functions, which is equal to
let g:user_emmet_mode='a' "enable all function in all mode.
```
## Enable just for html/css
```vim
let g:user_emmet_install_global = 0
autocmd FileType html,css EmmetInstall
```
## Redefine trigger key
To remap the default `<C-Y>` leader:
```vim
let g:user_emmet_leader_key='<C-Z>'
```
Note that the trailing `,` still needs to be entered, so the new keymap would be `<C-Z>,`.
## Adding custom snippets
If you have installed the [web-api](https://github.com/mattn/webapi-vim) for **emmet-vim** you can also add your own snippets using a custom **snippets.json** file.
Once you have installed the [web-api](https://github.com/mattn/webapi-vim) add this line to your **.vimrc**:
```
let g:user_emmet_settings = webapi#json#decode(join(readfile(expand('~/.snippets_custom.json')), "\n"))
```
You can change the **path** to your **snippets_custom.json** according to your preferences.
[Here](http://docs.emmet.io/customization/snippets/) you can find instructions about creating your customized **snippets.json** file.
## Snippet to add meta tag for responsiveness
Update this in your .vimrc file.
let g:user_emmet_settings = {
\ 'variables': {'lang': 'ja'},
\ 'html': {
\ 'default_attributes': {
\ 'option': {'value': v:null},
\ 'textarea': {'id': v:null, 'name': v:null, 'cols': 10, 'rows': 10},
\ },
\ 'snippets': {
\ 'html:5': "<!DOCTYPE html>\n"
\ ."<html lang=\"${lang}\">\n"
\ ."<head>\n"
\ ."\t<meta charset=\"${charset}\">\n"
\ ."\t<title></title>\n"
\ ."\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n"
\ ."</head>\n"
\ ."<body>\n\t${child}|\n</body>\n"
\ ."</html>",
\ },
\ },
\}
## Project Authors
[Yasuhiro Matsumoto](http://mattn.kaoriya.net/)
## FAQ
* Pressing ctrl+y+, doesn't work
Probably you set `timeoutlen=0`. Most of Vim plugins which using key-mappings does not work with `timeoutlen=0`.
## Links
### Emmet official site:
* <http://emmet.io/>
### zen-coding official site:
* <http://code.google.com/p/zen-coding/>
### emmet.vim:
* <https://mattn.github.io/emmet-vim/>
### development repository:
* <https://github.com/mattn/emmet-vim>
### my blog posts about zencoding-vim:
* <http://mattn.kaoriya.net/software/vim/20100222103327.htm>
* <http://mattn.kaoriya.net/software/vim/20100306021632.htm>
### Japanese blog posts about zencoding-vim:
* <http://d.hatena.ne.jp/idesaku/20100424/1272092255>
* <http://d.hatena.ne.jp/griefworker/20110118/vim_zen_coding>
* <http://d.hatena.ne.jp/sakurako_s/20110126/1295988873>
* <http://looxu.blogspot.jp/2010/02/zencodingvimhtml.html>
### A Chinese translation of the tutorial:
* <http://www.zfanw.com/blog/zencoding-vim-tutorial-chinese.html>

0
TODO Normal file
View File

212
TUTORIAL Normal file
View File

@@ -0,0 +1,212 @@
Tutorial for Emmet.vim
mattn <mattn.jp@gmail.com>
1. Expand an Abbreviation
Type the abbreviation as 'div>p#foo$*3>a' and type '<c-y>,'.
---------------------
<div>
<p id="foo1">
<a href=""></a>
</p>
<p id="foo2">
<a href=""></a>
</p>
<p id="foo3">
<a href=""></a>
</p>
</div>
---------------------
2. Wrap with an Abbreviation
Write as below.
---------------------
test1
test2
test3
---------------------
Then do visual select(line wise) and type '<c-y>,'.
Once you get to the 'Tag:' prompt, type 'ul>li*'.
---------------------
<ul>
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
---------------------
If you type a tag, such as 'blockquote', then you'll see the following:
---------------------
<blockquote>
test1
test2
test3
</blockquote>
---------------------
3. Balance a Tag Inward
type '<c-y>d' in insert mode.
4. Balance a Tag Outward
type '<c-y>D' in insert mode.
5. Go to the Next Edit Point
type '<c-y>n' in insert mode.
6. Go to the Previous Edit Point
type '<c-y>N' in insert mode.
7. Update an <img>s Size
Move cursor to the img tag.
---------------------
<img src="foo.png" />
---------------------
Type '<c-y>i' on img tag
---------------------
<img src="foo.png" width="32" height="48" />
---------------------
8. Merge Lines
select the lines, which include '<li>'
---------------------
<ul>
<li class="list1"></li>
<li class="list2"></li>
<li class="list3"></li>
</ul>
---------------------
and then type '<c-y>m'
---------------------
<ul>
<li class="list1"></li><li class="list2"></li><li class="list3"></li>
</ul>
---------------------
9. Remove a Tag
Move cursor in block
---------------------
<div class="foo">
<a>cursor is here</a>
</div>
---------------------
Type '<c-y>k' in insert mode.
---------------------
<div class="foo">
</div>
---------------------
And type '<c-y>k' in there again.
---------------------
---------------------
10. Split/Join Tag
Move the cursor inside block
---------------------
<div class="foo">
cursor is here
</div>
---------------------
Type '<c-y>j' in insert mode.
---------------------
<div class="foo"/>
---------------------
And then type '<c-y>j' in there again.
---------------------
<div class="foo">
</div>
---------------------
11. Toggle Comment
Move cursor inside the block
---------------------
<div>
hello world
</div>
---------------------
Type '<c-y>/' in insert mode.
---------------------
<!-- <div>
hello world
</div> -->
---------------------
Type '<c-y>/' in there again.
---------------------
<div>
hello world
</div>
---------------------
12. Make an anchor from a URL
Move cursor to URL
---------------------
http://www.google.com/
---------------------
Type '<c-y>a'
---------------------
<a href="http://www.google.com/">Google</a>
---------------------
13. Make some quoted text from a URL
Move cursor to the URL
---------------------
http://github.com/
---------------------
Type '<c-y>A'
---------------------
<blockquote class="quote">
<a href="http://github.com/">Secure source code hosting and collaborative development - GitHub</a><br />
<p>How does it work? Get up and running in seconds by forking a project, pushing an existing repository...</p>
<cite>http://github.com/</cite>
</blockquote>
---------------------
14. Installing emmet.vim for the language you are using:
# cd ~/.vim
# unzip emmet-vim.zip
Or if you are using pathogen.vim:
# cd ~/.vim/bundle # or make directory
# unzip /path/to/emmet-vim.zip
Or if you get the sources from the repository:
# cd ~/.vim/bundle # or make directory
# git clone http://github.com/mattn/emmet-vim.git
15. Enable emmet.vim for the language you using.
You can customize the behavior of the languages you are using.
---------------------
# cat >> ~/.vimrc
let g:user_emmet_settings = {
\ 'php' : {
\ 'extends' : 'html',
\ 'filters' : 'c',
\ },
\ 'xml' : {
\ 'extends' : 'html',
\ },
\ 'haml' : {
\ 'extends' : 'html',
\ },
\}
---------------------

247
TUTORIAL.mkd Normal file
View File

@@ -0,0 +1,247 @@
# Tutorial for Emmet.vim
mattn <mattn.jp@gmail.com>
## Expand an Abbreviation
Type the abbreviation as `div>p#foo$*3>a` and type `<c-y>,`
```html
<div>
<p id="foo1">
<a href=""></a>
</p>
<p id="foo2">
<a href=""></a>
</p>
<p id="foo3">
<a href=""></a>
</p>
</div>
```
## Wrap with an Abbreviation
Write as below:
```html
test1
test2
test3
```
Then do visual select(line wise) and type `<c-y>,`. Once you get to the 'Tag:' prompt, type `ul>li*`.
```html
<ul>
<li>test1</li>
<li>test2</li>
<li>test3</li>
</ul>
```
If you type a tag, such as `blockquote`, then you'll see the following:
```html
<blockquote>
test1
test2
test3
</blockquote>
```
## Balance a Tag Inward
Just type `<c-y>d` in insert mode.
## Balance a Tag Outward
Just type `<c-y>D` in insert mode.
## Go to the Next Edit Point
Just type `<c-y>n` in insert mode.
## Go to the Previous Edit Point
Just type `<c-y>N` in insert mode.
## Update an <img>s Size
Move cursor to the img tag.
```html
<img src="foo.png" />
```
Type `<c-y>i` on img tag
## Merge Lines
select the lines, which include `<li>`
```html
<ul>
<li class="list1"></li>
<li class="list2"></li>
<li class="list3"></li>
</ul>
```
and then type `<c-y>m`
```html
<ul>
<li class="list1"></li><li class="list2"></li><li class="list3"></li>
</ul>
```
## Remove the tag
Move cursor in block
```html
<div class="foo">
<a>cursor is here</a>
</div>
```
Type '<c-y>k' in insert mode.
```html
<div class="foo">
</div>
```
And type '<c-y>k' in there again.
```html
```
## Split/Join Tag
Move the cursor inside block
```html
<div class="foo">
cursor is here
</div>
```
Type '<c-y>j' in insert mode.
```html
<div class="foo"/>
```
And then type '<c-y>j' in there again.
```html
<div class="foo">
cursor is here
</div>
```
## Toggle Comment
Move cursor inside the block
```html
<div>
hello world
</div>
```
Type '<c-y>/' in insert mode.
```html
<!-- <div>
hello world
</div> -->
```
Type '<c-y>/' in there again.
```html
<div>
hello world
</div>
```
## Make an anchor from a URL
Move cursor to URL
```http
http://www.google.com/
```
Type '<c-y>a'
```html
<a href="http://www.google.com/">Google</a>
```
## Make some quoted text from a URL
Move cursor to the URL
```http
http://github.com/
```
Type '<c-y>A'
```html
<blockquote class="quote">
<a href="http://github.com/">Secure source code hosting and collaborative development - GitHub</a><br />
<p>How does it work? Get up and running in seconds by forking a project, pushing an existing repository...</p>
<cite>http://github.com/</cite>
</blockquote>
```
## Installing emmet.vim for the language you are using:
```sh
cd ~/.vim
unzip emmet-vim.zip
```
Or if you are using pathogen.vim:
```shell
cd ~/.vim/bundle # or make directory
unzip /path/to/emmet-vim.zip
```
Or if you get the sources from the repository:
```sh
cd ~/.vim/bundle # or make directory
git clone http://github.com/mattn/emmet-vim.git
```
## Enable emmet.vim for the language you using.
You can customize the behavior of the languages you are using.
```sh
cat >> ~/.vimrc
let g:user_emmet_settings = {
\ 'php' : {
\ 'extends' : 'html',
\ 'filters' : 'c',
\ },
\ 'xml' : {
\ 'extends' : 'html',
\ },
\ 'haml' : {
\ 'extends' : 'html',
\ },
\}
```

2148
autoload/emmet.vim Normal file

File diff suppressed because it is too large Load Diff

52
autoload/emmet/lang.vim Normal file
View File

@@ -0,0 +1,52 @@
let s:exists = {}
function! emmet#lang#exists(type) abort
if len(a:type) == 0
return 0
elseif has_key(s:exists, a:type)
return s:exists[a:type]
endif
let s:exists[a:type] = len(globpath(&rtp, 'autoload/emmet/lang/'.a:type.'.vim')) > 0
return s:exists[a:type]
endfunction
function! emmet#lang#type(type) abort
let type = a:type
let base = type
let settings = emmet#getSettings()
while base != ''
for b in split(base, '\.')
if emmet#lang#exists(b)
return b
endif
if has_key(settings, b) && has_key(settings[b], 'extends')
let base = settings[b].extends
break
else
let base = ''
endif
endfor
endwhile
return 'html'
endfunction
" get all extends for a type recursively
function! emmet#lang#getExtends(type) abort
let settings = emmet#getSettings()
if !has_key(settings[a:type], 'extends')
return []
endif
let extends = settings[a:type].extends
if type(extends) ==# 1
let tmp = split(extends, '\s*,\s*')
unlet! extends
let extends = tmp
endif
for ext in extends
let extends = extends + emmet#lang#getExtends(ext)
endfor
return extends
endfunction

385
autoload/emmet/lang/css.vim Normal file
View File

@@ -0,0 +1,385 @@
function! emmet#lang#css#findTokens(str) abort
let tmp = substitute(substitute(a:str, '^.*[;{]\s*', '', ''), '}\s*$', '', '')
if tmp =~ '/' && tmp =~ '^[a-zA-Z0-9/_.]\+$'
" maybe path or something
return ''
endif
return substitute(substitute(a:str, '^.*[;{]\s*', '', ''), '}\s*$', '', '')
endfunction
function! emmet#lang#css#parseIntoTree(abbr, type) abort
let abbr = a:abbr
let type = a:type
let prefix = 0
let value = ''
let indent = emmet#getIndentation(type)
let aliases = emmet#getResource(type, 'aliases', {})
let snippets = emmet#getResource(type, 'snippets', {})
let use_pipe_for_cursor = emmet#getResource(type, 'use_pipe_for_cursor', 1)
let root = emmet#newNode()
" emmet
let tokens = split(abbr, '+\ze[^+)!]')
let block = emmet#util#searchRegion('{', '}')
if abbr !~# '^@' && emmet#getBaseType(type) ==# 'css' && type !=# 'sass' && type !=# 'styled' && block[0] ==# [0,0] && block[1] ==# [0,0]
let current = emmet#newNode()
let current.snippet = substitute(abbr, '\s\+$', '', '') . " {\n" . indent . "${cursor}\n}"
let current.name = ''
call add(root.child, deepcopy(current))
else
for n in range(len(tokens))
let token = tokens[n]
let prop = matchlist(token, '^\(-\{0,1}[a-zA-Z]\+\|[a-zA-Z0-9]\++\{0,1}\|([a-zA-Z0-9]\++\{0,1})\)\(\%([0-9.-]\+\%(p\|e\|em\|x\|vh\|vw\|re\|rem\|%\)\{0,}-\{0,1}\|-auto\)*\)$')
if len(prop)
let token = substitute(prop[1], '^(\(.*\))', '\1', '')
if token =~# '^-'
let prefix = 1
let token = token[1:]
endif
let value = ''
for vt in split(prop[2], '\a\+\zs')
let ut = matchstr(vt, '[a-z]\+$')
if ut == 'auto'
let ut = ''
endif
for v in split(vt, '\d\zs-')
if len(value) > 0
let value .= ' '
endif
if v !~ '[a-z]\+$'
let v .= ut
endif
if token =~# '^[z]'
" TODO
let value .= substitute(v, '[^0-9.]*$', '', '')
elseif v =~# 'em$'
let value .= v
elseif v =~# 'ex$'
let value .= v
elseif v =~# 'vh$'
let value .= v
elseif v =~# 'vw$'
let value .= v
elseif v =~# 'rem$'
let value .= v
elseif v ==# 'auto'
let value .= v
elseif v =~# 'p$'
let value .= substitute(v, 'p$', '%', '')
elseif v =~# '%$'
let value .= v
elseif v =~# 'e$'
let value .= substitute(v, 'e$', 'em', '')
elseif v =~# 'x$'
let value .= substitute(v, 'x$', 'ex', '')
elseif v =~# 're$'
let value .= substitute(v, 're$', 'rem', '')
elseif v =~# '\.'
let value .= v . 'em'
elseif v ==# '0'
let value .= '0'
else
let value .= v . 'px'
endif
endfor
endfor
endif
let tag_name = token
if tag_name =~# '.!$'
let tag_name = tag_name[:-2]
let important = 1
else
let important = 0
endif
" make default node
let current = emmet#newNode()
let current.important = important
let current.name = tag_name
" aliases
if has_key(aliases, tag_name)
let current.name = aliases[tag_name]
endif
" snippets
if !empty(snippets)
let snippet_name = tag_name
if !has_key(snippets, snippet_name)
let pat = '^' . join(split(tag_name, '\zs'), '\%(\|[^:-]\+-\)')
let vv = filter(sort(keys(snippets)), 'snippets[v:val] =~ pat')
if len(vv) == 0
let vv = filter(sort(keys(snippets)), 'substitute(v:val, ":", "", "g") == snippet_name')
endif
if len(vv) > 0
let snippet_name = vv[0]
else
let pat = '^' . join(split(tag_name, '\zs'), '\%(\|[^:-]\+-*\)')
let vv = filter(sort(keys(snippets)), 'snippets[v:val] =~ pat')
if len(vv) == 0
let pat = '^' . join(split(tag_name, '\zs'), '[^:]\{-}')
let vv = filter(sort(keys(snippets)), 'snippets[v:val] =~ pat')
if len(vv) == 0
let pat = '^' . join(split(tag_name, '\zs'), '.\{-}')
let vv = filter(sort(keys(snippets)), 'snippets[v:val] =~ pat')
endif
endif
let minl = -1
for vk in vv
let vvs = snippets[vk]
if minl == -1 || len(vvs) < minl
let snippet_name = vk
let minl = len(vvs)
endif
endfor
endif
endif
if has_key(snippets, snippet_name)
let snippet = snippets[snippet_name]
if use_pipe_for_cursor
let snippet = substitute(snippet, '|', '${cursor}', 'g')
endif
let lines = split(snippet, "\n")
call map(lines, 'substitute(v:val, "\\( \\|\\t\\)", escape(indent, "\\\\"), "g")')
let current.snippet = join(lines, "\n")
let current.name = ''
let current.snippet = substitute(current.snippet, ';', value . ';', '')
if use_pipe_for_cursor && len(value) > 0
let current.snippet = substitute(current.snippet, '\${cursor}', '', 'g')
endif
if n < len(tokens) - 1
let current.snippet .= "\n"
endif
endif
endif
let current.pos = 0
let lg = matchlist(token, '^\%(linear-gradient\|lg\)(\s*\(\S\+\)\s*,\s*\([^,]\+\)\s*,\s*\([^)]\+\)\s*)$')
if len(lg) == 0
let lg = matchlist(token, '^\%(linear-gradient\|lg\)(\s*\(\S\+\)\s*,\s*\([^,]\+\)\s*)$')
if len(lg)
let [lg[1], lg[2], lg[3]] = ['linear', lg[1], lg[2]]
endif
endif
if len(lg)
let current.name = ''
let current.snippet = printf("background-image:-webkit-gradient(%s, 0 0, 0 100%, from(%s), to(%s));\n", lg[1], lg[2], lg[3])
call add(root.child, deepcopy(current))
let current.snippet = printf("background-image:-webkit-linear-gradient(%s, %s);\n", lg[2], lg[3])
call add(root.child, deepcopy(current))
let current.snippet = printf("background-image:-moz-linear-gradient(%s, %s);\n", lg[2], lg[3])
call add(root.child, deepcopy(current))
let current.snippet = printf("background-image:-o-linear-gradient(%s, %s);\n", lg[2], lg[3])
call add(root.child, deepcopy(current))
let current.snippet = printf("background-image:linear-gradient(%s, %s);\n", lg[2], lg[3])
call add(root.child, deepcopy(current))
elseif prefix
let snippet = current.snippet
let current.snippet = '-webkit-' . snippet . "\n"
call add(root.child, deepcopy(current))
let current.snippet = '-moz-' . snippet . "\n"
call add(root.child, deepcopy(current))
let current.snippet = '-o-' . snippet . "\n"
call add(root.child, deepcopy(current))
let current.snippet = '-ms-' . snippet . "\n"
call add(root.child, deepcopy(current))
let current.snippet = snippet
call add(root.child, current)
elseif token =~# '^c#\([0-9a-fA-F]\{3}\|[0-9a-fA-F]\{6}\)\(\.[0-9]\+\)\?'
let cs = split(token, '\.')
let current.name = ''
let [r,g,b] = [0,0,0]
if len(cs[0]) == 5
let rgb = matchlist(cs[0], 'c#\(.\)\(.\)\(.\)')
let r = eval('0x'.rgb[1].rgb[1])
let g = eval('0x'.rgb[2].rgb[2])
let b = eval('0x'.rgb[3].rgb[3])
elseif len(cs[0]) == 8
let rgb = matchlist(cs[0], 'c#\(..\)\(..\)\(..\)')
let r = eval('0x'.rgb[1])
let g = eval('0x'.rgb[2])
let b = eval('0x'.rgb[3])
endif
if len(cs) == 1
let current.snippet = printf('color:rgb(%d, %d, %d);', r, g, b)
else
let current.snippet = printf('color:rgb(%d, %d, %d, %s);', r, g, b, string(str2float('0.'.cs[1])))
endif
call add(root.child, current)
elseif token =~# '^c#'
let current.name = ''
let current.snippet = 'color:\${cursor};'
call add(root.child, current)
else
call add(root.child, current)
endif
endfor
endif
return root
endfunction
function! emmet#lang#css#toString(settings, current, type, inline, filters, itemno, indent) abort
let current = a:current
let value = current.value[1:-2]
let tmp = substitute(value, '\${cursor}', '', 'g')
if tmp !~ '.*{[ \t\r\n]*}$'
if emmet#useFilter(a:filters, 'fc')
let value = substitute(value, '\([^:]\+\):\([^;]*\)', '\1: \2', 'g')
else
let value = substitute(value, '\([^:]\+\):\([^;]*\)', '\1:\2', 'g')
endif
if current.important
let value = substitute(value, ';', ' !important;', '')
endif
endif
return value
endfunction
function! emmet#lang#css#imageSize() abort
let img_region = emmet#util#searchRegion('{', '}')
if !emmet#util#regionIsValid(img_region) || !emmet#util#cursorInRegion(img_region)
return
endif
let content = emmet#util#getContent(img_region)
let fn = matchstr(content, '\<url(\zs[^)]\+\ze)')
let fn = substitute(fn, '[''" \t]', '', 'g')
if fn =~# '^\s*$'
return
elseif fn !~# '^\(/\|http\)'
let fn = simplify(expand('%:h') . '/' . fn)
endif
let [width, height] = emmet#util#getImageSize(fn)
if width == -1 && height == -1
return
endif
let indent = emmet#getIndentation('css')
if content =~# '.*\<width\s*:[^;]*;.*'
let content = substitute(content, '\<width\s*:[^;]*;', 'width: ' . width . 'px;', '')
else
let content = substitute(content, '}', indent . 'width: ' . width . "px;\n}", '')
endif
if content =~# '.*\<height\s*:[^;]*;.*'
let content = substitute(content, '\<height\s*:[^;]*;', 'height: ' . height . 'px;', '')
else
let content = substitute(content, '}', indent . 'height: ' . height . "px;\n}", '')
endif
call emmet#util#setContent(img_region, content)
endfunction
function! emmet#lang#css#imageEncode() abort
let img_region = emmet#util#searchRegion('url(', ')')
if !emmet#util#regionIsValid(img_region) || !emmet#util#cursorInRegion(img_region)
return
endif
let content = emmet#util#getContent(img_region)
let fn = matchstr(content, '\<url(\zs[^)]\+\ze)')
let fn = substitute(fn, '[''" \t]', '', 'g')
if fn =~# '^\s*$'
return
elseif fn !~# '^\(/\|http\)'
let fn = simplify(expand('%:h') . '/' . fn)
endif
let encoded = emmet#util#imageEncodeDecode(fn, 0)
call emmet#util#setContent(img_region, 'url(' . encoded . ')')
endfunction
function! emmet#lang#css#parseTag(tag) abort
return {}
endfunction
function! emmet#lang#css#toggleComment() abort
let line = getline('.')
let mx = '^\(\s*\)/\*\s*\(.*\)\s*\*/\s*$'
if line =~# '{\s*$'
let block = emmet#util#searchRegion('/\*', '\*/\zs')
if emmet#util#regionIsValid(block)
let content = emmet#util#getContent(block)
let content = substitute(content, '/\*\s\(.*\)\s\*/', '\1', '')
call emmet#util#setContent(block, content)
else
let node = expand('<cword>')
if len(node)
exe "normal ciw\<c-r>='/* '.node.' */'\<cr>"
endif
endif
else
if line =~# mx
let space = substitute(matchstr(line, mx), mx, '\1', '')
let line = substitute(matchstr(line, mx), mx, '\2', '')
let line = space . substitute(line, '^\s*\|\s*$', '\1', 'g')
else
let mx = '^\(\s*\)\(''[^'']*''\|[^'']*\|;\)\s*$'
" TODO multi-property
"let mx = '^\(\s*\)\(\%(''[^'']*''\|[^'';]\+\)*;\{0,1}\)'
let line = substitute(line, mx, '\1/* \2 */', '')
endif
call setline('.', line)
endif
endfunction
function! emmet#lang#css#balanceTag(flag) range abort
if a:flag == -2 || a:flag == 2
let curpos = [0, line("'<"), col("'<"), 0]
else
let curpos = emmet#util#getcurpos()
endif
let block = emmet#util#getVisualBlock()
if !emmet#util#regionIsValid(block)
if a:flag > 0
let block = emmet#util#searchRegion('^', ';')
if emmet#util#regionIsValid(block)
call emmet#util#selectRegion(block)
return
endif
endif
else
if a:flag > 0
let content = emmet#util#getContent(block)
if content !~# '^{.*}$'
let block = emmet#util#searchRegion('{', '}')
if emmet#util#regionIsValid(block)
call emmet#util#selectRegion(block)
return
endif
endif
else
let pos = searchpos('.*;', 'nW')
if pos[0] != 0
call setpos('.', [0, pos[0], pos[1], 0])
let block = emmet#util#searchRegion('^', ';')
if emmet#util#regionIsValid(block)
call emmet#util#selectRegion(block)
return
endif
endif
endif
endif
if a:flag == -2 || a:flag == 2
silent! exe 'normal! gv'
else
call setpos('.', curpos)
endif
endfunction
function! emmet#lang#css#moveNextPrevItem(flag) abort
return emmet#lang#css#moveNextPrev(a:flag)
endfunction
function! emmet#lang#css#moveNextPrev(flag) abort
call search('""\|()\|\(:\s*\zs;\{1,0}$\)', a:flag ? 'Wbp' : 'Wp')
return ''
endfunction
function! emmet#lang#css#splitJoinTag() abort
" nothing to do
endfunction
function! emmet#lang#css#removeTag() abort
" nothing to do
endfunction
function! emmet#lang#css#mergeLines() abort
" nothing to do
endfunction

241
autoload/emmet/lang/elm.vim Normal file
View File

@@ -0,0 +1,241 @@
function! emmet#lang#elm#findTokens(str) abort
return emmet#lang#html#findTokens(a:str)
endfunction
function! emmet#lang#elm#parseIntoTree(abbr, type) abort
let tree = emmet#lang#html#parseIntoTree(a:abbr, a:type)
if len(tree.child) < 2 | return tree | endif
" Add ',' nodes between root elements.
let new_children = []
for child in tree.child[0:-2]
let comma = emmet#newNode()
let comma.name = ','
call add(new_children, child)
call add(new_children, comma)
endfor
call add(new_children, tree.child[-1])
let tree.child = new_children
return tree
endfunction
function! emmet#lang#elm#renderNode(node)
let elm_nodes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'
\, 'div', 'p', 'hr', 'pre', 'blockquote'
\, 'span', 'a', 'code', 'em', 'strong', 'i', 'b', 'u', 'sub', 'sup', 'br'
\, 'ol', 'ul', 'li', 'dl', 'dt', 'dd'
\, 'img', 'iframe', 'canvas', 'math'
\, 'form', 'input', 'textarea', 'button', 'select', 'option'
\, 'section', 'nav', 'article', 'aside', 'header', 'footer', 'address', 'main_', 'body'
\, 'figure', 'figcaption'
\, 'table', 'caption', 'colgroup', 'col', 'tbody', 'thead', 'tfoot', 'tr', 'td', 'th'
\, 'fieldset', 'legend', 'label', 'datalist', 'optgroup', 'keygen', 'output', 'progress', 'meter'
\, 'audio', 'video', 'source', 'track'
\, 'embed', 'object', 'param'
\, 'ins', 'del'
\, 'small', 'cite', 'dfn', 'abbr', 'time', 'var', 'samp', 'kbd', 's', 'q'
\, 'mark', 'ruby', 'rt', 'rp', 'bdi', 'bdo', 'wbr'
\, 'details', 'summary', 'menuitem', 'menu']
if index(elm_nodes, a:node) >= 0
return a:node
endif
return 'node "' . a:node . '"'
endfunction
function! emmet#lang#elm#renderParam(param)
let elm_events = ["onClick", "onDoubleClick"
\, "onMouseDown", "onMouseUp"
\, "onMouseEnter", "onMouseLeave"
\, "onMouseOver", "onMouseOut"
\, "onInput", "onCheck", "onSubmit"
\, "onBlur", "onFocus"
\, "on", "onWithOptions", "Options", "defaultOptions"
\, "targetValue", "targetChecked", "keyCode"]
if index(elm_events, a:param) >= 0
return a:param
endif
let elm_attributes = ["style", "map" , "class", "id", "title", "hidden"
\, "type", "type_", "value", "defaultValue", "checked", "placeholder", "selected"
\, "accept", "acceptCharset", "action", "autocomplete", "autofocus"
\, "disabled", "enctype", "formaction", "list", "maxlength", "minlength", "method", "multiple"
\, "name", "novalidate", "pattern", "readonly", "required", "size", "for", "form"
\, "max", "min", "step"
\, "cols", "rows", "wrap"
\, "href", "target", "download", "downloadAs", "hreflang", "media", "ping", "rel"
\, "ismap", "usemap", "shape", "coords"
\, "src", "height", "width", "alt"
\, "autoplay", "controls", "loop", "preload", "poster", "default", "kind", "srclang"
\, "sandbox", "seamless", "srcdoc"
\, "reversed", "start"
\, "align", "colspan", "rowspan", "headers", "scope"
\, "async", "charset", "content", "defer", "httpEquiv", "language", "scoped"
\, "accesskey", "contenteditable", "contextmenu", "dir", "draggable", "dropzone"
\, "itemprop", "lang", "spellcheck", "tabindex"
\, "challenge", "keytype"
\, "cite", "datetime", "pubdate", "manifest"]
if index(elm_attributes, a:param) >= 0
if a:param == 'type'
return 'type_'
endif
return a:param
endif
return 'attribute "' . a:param . '"'
endfunction
function! emmet#lang#elm#toString(settings, current, type, inline, filters, itemno, indent) abort
let settings = a:settings
let current = a:current
let type = a:type
let inline = a:inline
let filters = a:filters
let itemno = a:itemno
let indent = emmet#getIndentation(type)
let dollar_expr = emmet#getResource(type, 'dollar_expr', 1)
let str = ''
" comma between items with *, eg. li*3
if itemno > 0
let str = ", "
endif
let current_name = current.name
if dollar_expr
let current_name = substitute(current.name, '\$$', itemno+1, '')
endif
if len(current.name) > 0
" inserted root comma nodes
if current_name == ','
return "\n, "
endif
let str .= emmet#lang#elm#renderNode(current_name)
let tmp = ''
for attr in emmet#util#unique(current.attrs_order + keys(current.attr))
if !has_key(current.attr, attr)
continue
endif
let Val = current.attr[attr]
let attr = emmet#lang#elm#renderParam(attr)
if type(Val) == 2 && Val == function('emmet#types#true')
let tmp .= ', ' . attr . ' True'
else
if dollar_expr
while Val =~# '\$\([^#{]\|$\)'
let Val = substitute(Val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
endwhile
let attr = substitute(attr, '\$$', itemno+1, '')
endif
let valtmp = substitute(Val, '\${cursor}', '', '')
if attr ==# 'id' && len(valtmp) > 0
let tmp .=', id "' . Val . '"'
elseif attr ==# 'class' && len(valtmp) > 0
let tmp .= ', class "' . substitute(Val, '\.', ' ', 'g') . '"'
else
let tmp .= ', ' . attr . ' "' . Val . '"'
endif
endif
endfor
if ! len(tmp)
let str .= ' []'
else
let tmp = strpart(tmp, 2)
let str .= ' [ ' . tmp . ' ]'
endif
" No children quit early
if len(current.child) == 0 && len(current.value) == 0
"Place cursor in node with no value or children
let str .= ' [${cursor}]'
return str
endif
let inner = ''
" Parent contex text
if len(current.value) > 0
let text = current.value[1:-2]
if dollar_expr
let text = substitute(text, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let text = substitute(text, '\${nr}', "\n", 'g')
let text = substitute(text, '\\\$', '$', 'g')
" let str = substitute(str, '\$#', text, 'g')
let inner .= ', text "' . text . '"'
endif
endif
" Has children
for child in current.child
if len(child.name) == 0 && len(child.value) > 0
" Text node
let text = child.value[1:-2]
if dollar_expr
let text = substitute(text, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let text = substitute(text, '\${nr}', "\n", 'g')
let text = substitute(text, '\\\$', '$', 'g')
endif
let inner .= ', text "' . text . '"'
else
" Other nodes
let inner .= ', ' . emmet#toString(child, type, inline, filters, 0, indent)
endif
endfor
let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g')
let inner = substitute(inner, "\n" . escape(indent, '\') . '$', '', 'g')
let inner = strpart(inner, 2)
let inner = substitute(inner, ' ', '', 'g')
if ! len(inner)
let str .= ' []'
else
let str .= ' [ ' . inner . ' ]'
endif
else
let str = current.value[1:-2]
if dollar_expr
let str = substitute(str, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let str = substitute(str, '\${nr}', "\n", 'g')
let str = substitute(str, '\\\$', '$', 'g')
endif
endif
let str .= "\n"
return str
endfunction
function! emmet#lang#elm#imageEncode() abort
endfunction
function! emmet#lang#elm#parseTag(tag) abort
return {}
endfunction
function! emmet#lang#elm#toggleComment() abort
endfunction
function! emmet#lang#elm#balanceTag(flag) range abort
endfunction
function! emmet#lang#elm#moveNextPrevItem(flag) abort
return emmet#lang#elm#moveNextPrev(a:flag)
endfunction
function! emmet#lang#elm#moveNextPrev(flag) abort
endfunction
function! emmet#lang#elm#splitJoinTag() abort
endfunction
function! emmet#lang#elm#removeTag() abort
endfunction
function! emmet#lang#elm#mergeLines() abort
endfunction

View File

@@ -0,0 +1,337 @@
function! emmet#lang#haml#findTokens(str) abort
return emmet#lang#html#findTokens(a:str)
endfunction
function! emmet#lang#haml#parseIntoTree(abbr, type) abort
return emmet#lang#html#parseIntoTree(a:abbr, a:type)
endfunction
function! emmet#lang#haml#toString(settings, current, type, inline, filters, itemno, indent) abort
let settings = a:settings
let current = a:current
let type = a:type
let inline = a:inline
let filters = a:filters
let itemno = a:itemno
let indent = emmet#getIndentation(type)
let dollar_expr = emmet#getResource(type, 'dollar_expr', 1)
let attribute_style = emmet#getResource('haml', 'attribute_style', 'hash')
let str = ''
let current_name = current.name
if dollar_expr
let current_name = substitute(current.name, '\$$', itemno+1, '')
endif
if len(current.name) > 0
let str .= '%' . current_name
let tmp = ''
for attr in emmet#util#unique(current.attrs_order + keys(current.attr))
if !has_key(current.attr, attr)
continue
endif
let Val = current.attr[attr]
if type(Val) == 2 && Val == function('emmet#types#true')
if attribute_style ==# 'hash'
let tmp .= ' :' . attr . ' => true'
elseif attribute_style ==# 'html'
let tmp .= attr . '=true'
end
else
if dollar_expr
while Val =~# '\$\([^#{]\|$\)'
let Val = substitute(Val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
endwhile
let attr = substitute(attr, '\$$', itemno+1, '')
endif
let valtmp = substitute(Val, '\${cursor}', '', '')
if attr ==# 'id' && len(valtmp) > 0
let str .= '#' . Val
elseif attr ==# 'class' && len(valtmp) > 0
let str .= '.' . substitute(Val, ' ', '.', 'g')
else
if len(tmp) > 0
if attribute_style ==# 'hash'
let tmp .= ','
elseif attribute_style ==# 'html'
let tmp .= ' '
endif
endif
if attribute_style ==# 'hash'
let tmp .= ' :' . attr . ' => "' . Val . '"'
elseif attribute_style ==# 'html'
let tmp .= attr . '="' . Val . '"'
end
endif
endif
endfor
if len(tmp)
if attribute_style ==# 'hash'
let str .= '{' . tmp . ' }'
elseif attribute_style ==# 'html'
let str .= '(' . tmp . ')'
end
endif
if stridx(','.settings.html.empty_elements.',', ','.current_name.',') != -1 && len(current.value) == 0
let str .= '/'
endif
let inner = ''
if len(current.value) > 0
let text = current.value[1:-2]
if dollar_expr
let text = substitute(text, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let text = substitute(text, '\${nr}', "\n", 'g')
let text = substitute(text, '\\\$', '$', 'g')
let str = substitute(str, '\$#', text, 'g')
endif
let lines = split(text, "\n")
if len(lines) == 1
let str .= ' ' . text
else
for line in lines
let str .= "\n" . indent . line . ' |'
endfor
endif
elseif len(current.child) == 0
let str .= '${cursor}'
endif
if len(current.child) == 1 && len(current.child[0].name) == 0
let text = current.child[0].value[1:-2]
if dollar_expr
let text = substitute(text, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let text = substitute(text, '\${nr}', "\n", 'g')
let text = substitute(text, '\\\$', '$', 'g')
endif
let lines = split(text, "\n")
if len(lines) == 1
let str .= ' ' . text
else
for line in lines
let str .= "\n" . indent . line . ' |'
endfor
endif
elseif len(current.child) > 0
for child in current.child
let inner .= emmet#toString(child, type, inline, filters, itemno, indent)
endfor
let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g')
let inner = substitute(inner, "\n" . escape(indent, '\') . '$', '', 'g')
let str .= "\n" . indent . inner
endif
else
let str = current.value[1:-2]
if dollar_expr
let str = substitute(str, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let str = substitute(str, '\${nr}', "\n", 'g')
let str = substitute(str, '\\\$', '$', 'g')
endif
endif
let str .= "\n"
return str
endfunction
function! emmet#lang#haml#imageSize() abort
let line = getline('.')
let current = emmet#lang#haml#parseTag(line)
if empty(current) || !has_key(current.attr, 'src')
return
endif
let fn = current.attr.src
if fn =~# '^\s*$'
return
elseif fn !~# '^\(/\|http\)'
let fn = simplify(expand('%:h') . '/' . fn)
endif
let [width, height] = emmet#util#getImageSize(fn)
if width == -1 && height == -1
return
endif
let current.attr.width = width
let current.attr.height = height
let current.attrs_order += ['width', 'height']
let haml = emmet#toString(current, 'haml', 1)
let haml = substitute(haml, '\${cursor}', '', '')
call setline('.', substitute(matchstr(line, '^\s*') . haml, "\n", '', 'g'))
endfunction
function! emmet#lang#haml#imageEncode() abort
endfunction
function! emmet#lang#haml#parseTag(tag) abort
let current = emmet#newNode()
let mx = '%\([a-zA-Z][a-zA-Z0-9]*\)\s*\%({\(.*\)}\)'
let match = matchstr(a:tag, mx)
let current.name = substitute(match, mx, '\1', '')
let attrs = substitute(match, mx, '\2', '')
let mx = '\([a-zA-Z0-9]\+\)\s*=>\s*\%(\([^"'' \t]\+\)\|"\([^"]\{-}\)"\|''\([^'']\{-}\)''\)'
while len(attrs) > 0
let match = matchstr(attrs, mx)
if len(match) ==# 0
break
endif
let attr_match = matchlist(match, mx)
let name = attr_match[1]
let value = len(attr_match[2]) ? attr_match[2] : attr_match[3]
let current.attr[name] = value
let current.attrs_order += [name]
let attrs = attrs[stridx(attrs, match) + len(match):]
endwhile
return current
endfunction
function! emmet#lang#haml#toggleComment() abort
let line = getline('.')
let space = matchstr(line, '^\s*')
if line =~# '^\s*-#'
call setline('.', space . matchstr(line[len(space)+2:], '^\s*\zs.*'))
elseif line =~# '^\s*%[a-z]'
call setline('.', space . '-# ' . line[len(space):])
endif
endfunction
function! emmet#lang#haml#balanceTag(flag) range abort
let block = emmet#util#getVisualBlock()
if a:flag == -2 || a:flag == 2
let curpos = [0, line("'<"), col("'<"), 0]
else
let curpos = emmet#util#getcurpos()
endif
let n = curpos[1]
let ml = len(matchstr(getline(n), '^\s*'))
if a:flag > 0
if a:flag == 1 || !emmet#util#regionIsValid(block)
let n = line('.')
else
while n > 0
let l = len(matchstr(getline(n), '^\s*\ze%[a-z]'))
if l > 0 && l < ml
let ml = l
break
endif
let n -= 1
endwhile
endif
let sn = n
if n == 0
let ml = 0
endif
while n < line('$')
let l = len(matchstr(getline(n), '^\s*%[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
call setpos('.', [0, n, 1, 0])
normal! V
call setpos('.', [0, sn, 1, 0])
else
while n > 0
let l = len(matchstr(getline(n), '^\s*\ze[a-z]'))
if l > 0 && l > ml
let ml = l
break
endif
let n += 1
endwhile
let sn = n
if n == 0
let ml = 0
endif
while n < line('$')
let l = len(matchstr(getline(n), '^\s*%[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
call setpos('.', [0, n, 1, 0])
normal! V
call setpos('.', [0, sn, 1, 0])
endif
endfunction
function! emmet#lang#haml#moveNextPrevItem(flag) abort
return emmet#lang#haml#moveNextPrev(a:flag)
endfunction
function! emmet#lang#haml#moveNextPrev(flag) abort
let pos = search('""', a:flag ? 'Wb' : 'W')
if pos != 0
silent! normal! l
startinsert
endif
endfunction
function! emmet#lang#haml#splitJoinTag() abort
let n = line('.')
let sml = len(matchstr(getline(n), '^\s*%[a-z]'))
while n > 0
if getline(n) =~# '^\s*\ze%[a-z]'
if len(matchstr(getline(n), '^\s*%[a-z]')) < sml
break
endif
let line = getline(n)
call setline(n, substitute(line, '^\s*%\w\+\%(\s*{[^}]*}\|\s\)\zs.*', '', ''))
let sn = n
let n += 1
let ml = len(matchstr(getline(n), '^\s*%[a-z]'))
if len(matchstr(getline(n), '^\s*')) > ml
while n <= line('$')
let l = len(matchstr(getline(n), '^\s*'))
if l <= ml
break
endif
exe n 'delete'
endwhile
call setpos('.', [0, sn, 1, 0])
else
let tag = matchstr(getline(sn), '^\s*%\zs\(\w\+\)')
let spaces = matchstr(getline(sn), '^\s*')
let settings = emmet#getSettings()
if stridx(','.settings.html.inline_elements.',', ','.tag.',') == -1
call append(sn, spaces . ' ')
call setpos('.', [0, sn+1, 1, 0])
else
call setpos('.', [0, sn, 1, 0])
endif
startinsert!
endif
break
endif
let n -= 1
endwhile
endfunction
function! emmet#lang#haml#removeTag() abort
let n = line('.')
let ml = 0
while n > 0
if getline(n) =~# '^\s*\ze[a-z]'
let ml = len(matchstr(getline(n), '^\s*%[a-z]'))
break
endif
let n -= 1
endwhile
let sn = n
while n < line('$')
let l = len(matchstr(getline(n), '^\s*%[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
if sn == n
exe 'delete'
else
exe sn ',' (n-1) 'delete'
endif
endfunction
function! emmet#lang#haml#mergeLines() abort
endfunction

1036
autoload/emmet/lang/html.vim Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,335 @@
function! emmet#lang#jade#findTokens(str) abort
return emmet#lang#html#findTokens(a:str)
endfunction
function! emmet#lang#jade#parseIntoTree(abbr, type) abort
return emmet#lang#html#parseIntoTree(a:abbr, a:type)
endfunction
function! emmet#lang#jade#toString(settings, current, type, inline, filters, itemno, indent) abort
let settings = a:settings
let current = a:current
let type = a:type
let inline = a:inline
let filters = a:filters
let itemno = a:itemno
let indent = emmet#getIndentation(type)
let dollar_expr = emmet#getResource(type, 'dollar_expr', 1)
let attribute_style = emmet#getResource('jade', 'attribute_style', 'hash')
let str = ''
let current_name = current.name
if dollar_expr
let current_name = substitute(current.name, '\$$', itemno+1, '')
endif
if len(current.name) > 0
let str .= '' . current_name
let tmp = ''
for attr in emmet#util#unique(current.attrs_order + keys(current.attr))
if !has_key(current.attr, attr)
continue
endif
let Val = current.attr[attr]
if type(Val) == 2 && Val == function('emmet#types#true')
if attribute_style ==# 'hash'
let tmp .= ' ' . attr . ' = true'
elseif attribute_style ==# 'html'
let tmp .= attr . '=true'
end
else
if dollar_expr
while Val =~# '\$\([^#{]\|$\)'
let Val = substitute(Val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
endwhile
let attr = substitute(attr, '\$$', itemno+1, '')
endif
let valtmp = substitute(Val, '\${cursor}', '', '')
if attr ==# 'id' && len(valtmp) > 0
let str .= '#' . Val
elseif attr ==# 'class' && len(valtmp) > 0
let str .= '.' . substitute(Val, ' ', '.', 'g')
else
if len(tmp) > 0
if attribute_style ==# 'hash'
let tmp .= ', '
elseif attribute_style ==# 'html'
let tmp .= ' '
endif
endif
if attribute_style ==# 'hash'
let tmp .= '' . attr . '="' . Val . '"'
elseif attribute_style ==# 'html'
let tmp .= attr . '="' . Val . '"'
end
endif
endif
endfor
if len(tmp)
if attribute_style ==# 'hash'
let str .= '(' . tmp . ')'
elseif attribute_style ==# 'html'
let str .= '(' . tmp . ')'
end
endif
let inner = ''
if len(current.value) > 0
let text = current.value[1:-2]
if dollar_expr
let text = substitute(text, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let text = substitute(text, '\${nr}', "\n", 'g')
let text = substitute(text, '\\\$', '$', 'g')
let str = substitute(str, '\$#', text, 'g')
endif
let lines = split(text, "\n")
if len(lines) == 1
let str .= ' ' . text
else
for line in lines
let str .= "\n" . indent . line . ' |'
endfor
endif
elseif len(current.child) == 0
let str .= '${cursor}'
endif
if len(current.child) == 1 && len(current.child[0].name) == 0
let text = current.child[0].value[1:-2]
if dollar_expr
let text = substitute(text, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let text = substitute(text, '\${nr}', "\n", 'g')
let text = substitute(text, '\\\$', '$', 'g')
endif
let lines = split(text, "\n")
if len(lines) == 1
let str .= ' ' . text
else
for line in lines
let str .= "\n" . indent . line . ' |'
endfor
endif
elseif len(current.child) > 0
for child in current.child
let inner .= emmet#toString(child, type, inline, filters, itemno, indent)
endfor
let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g')
let inner = substitute(inner, "\n" . escape(indent, '\') . '$', '', 'g')
let str .= "\n" . indent . inner
endif
else
let str = current.value[1:-2]
if dollar_expr
let str = substitute(str, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let str = substitute(str, '\${nr}', "\n", 'g')
let str = substitute(str, '\\\$', '$', 'g')
endif
endif
let str .= "\n"
return str
endfunction
function! emmet#lang#jade#imageSize() abort
let line = getline('.')
let current = emmet#lang#jade#parseTag(line)
if empty(current) || !has_key(current.attr, 'src')
return
endif
let fn = current.attr.src
if fn =~# '^\s*$'
return
elseif fn !~# '^\(/\|http\)'
let fn = simplify(expand('%:h') . '/' . fn)
endif
let [width, height] = emmet#util#getImageSize(fn)
if width == -1 && height == -1
return
endif
let current.attr.width = width
let current.attr.height = height
let current.attrs_order += ['width', 'height']
let jade = emmet#toString(current, 'jade', 1)
let jade = substitute(jade, '\${cursor}', '', '')
call setline('.', substitute(matchstr(line, '^\s*') . jade, "\n", '', 'g'))
endfunction
function! emmet#lang#jade#imageEncode() abort
endfunction
function! emmet#lang#jade#parseTag(tag) abort
let current = emmet#newNode()
let mx = '%\([a-zA-Z][a-zA-Z0-9]*\)\s*\%({\(.*\)}\)'
let match = matchstr(a:tag, mx)
let current.name = substitute(match, mx, '\1', '')
let attrs = substitute(match, mx, '\2', '')
let mx = '\([a-zA-Z0-9]\+\)\s*=>\s*\%(\([^"'' \t]\+\)\|"\([^"]\{-}\)"\|''\([^'']\{-}\)''\)'
while len(attrs) > 0
let match = matchstr(attrs, mx)
if len(match) ==# 0
break
endif
let attr_match = matchlist(match, mx)
let name = attr_match[1]
let value = len(attr_match[2]) ? attr_match[2] : attr_match[3]
let current.attr[name] = value
let current.attrs_order += [name]
let attrs = attrs[stridx(attrs, match) + len(match):]
endwhile
return current
endfunction
function! emmet#lang#jade#toggleComment() abort
let line = getline('.')
let space = matchstr(line, '^\s*')
if line =~# '^\s*-#'
call setline('.', space . matchstr(line[len(space)+2:], '^\s*\zs.*'))
elseif line =~# '^\s*%[a-z]'
call setline('.', space . '-# ' . line[len(space):])
endif
endfunction
function! emmet#lang#jade#balanceTag(flag) range abort
let block = emmet#util#getVisualBlock()
if a:flag == -2 || a:flag == 2
let curpos = [0, line("'<"), col("'<"), 0]
else
let curpos = emmet#util#getcurpos()
endif
let n = curpos[1]
let ml = len(matchstr(getline(n), '^\s*'))
if a:flag > 0
if a:flag == 1 || !emmet#util#regionIsValid(block)
let n = line('.')
else
while n > 0
let l = len(matchstr(getline(n), '^\s*\ze%[a-z]'))
if l > 0 && l < ml
let ml = l
break
endif
let n -= 1
endwhile
endif
let sn = n
if n == 0
let ml = 0
endif
while n < line('$')
let l = len(matchstr(getline(n), '^\s*%[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
call setpos('.', [0, n, 1, 0])
normal! V
call setpos('.', [0, sn, 1, 0])
else
while n > 0
let l = len(matchstr(getline(n), '^\s*\ze[a-z]'))
if l > 0 && l > ml
let ml = l
break
endif
let n += 1
endwhile
let sn = n
if n == 0
let ml = 0
endif
while n < line('$')
let l = len(matchstr(getline(n), '^\s*%[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
call setpos('.', [0, n, 1, 0])
normal! V
call setpos('.', [0, sn, 1, 0])
endif
endfunction
function! emmet#lang#jade#moveNextPrevItem(flag) abort
return emmet#lang#jade#moveNextPrev(a:flag)
endfunction
function! emmet#lang#jade#moveNextPrev(flag) abort
let pos = search('""', a:flag ? 'Wb' : 'W')
if pos != 0
silent! normal! l
startinsert
endif
endfunction
function! emmet#lang#jade#splitJoinTag() abort
let n = line('.')
let sml = len(matchstr(getline(n), '^\s*%[a-z]'))
while n > 0
if getline(n) =~# '^\s*\ze%[a-z]'
if len(matchstr(getline(n), '^\s*%[a-z]')) < sml
break
endif
let line = getline(n)
call setline(n, substitute(line, '^\s*%\w\+\%(\s*{[^}]*}\|\s\)\zs.*', '', ''))
let sn = n
let n += 1
let ml = len(matchstr(getline(n), '^\s*%[a-z]'))
if len(matchstr(getline(n), '^\s*')) > ml
while n <= line('$')
let l = len(matchstr(getline(n), '^\s*'))
if l <= ml
break
endif
exe n 'delete'
endwhile
call setpos('.', [0, sn, 1, 0])
else
let tag = matchstr(getline(sn), '^\s*%\zs\(\w\+\)')
let spaces = matchstr(getline(sn), '^\s*')
let settings = emmet#getSettings()
if stridx(','.settings.html.inline_elements.',', ','.tag.',') == -1
call append(sn, spaces . ' ')
call setpos('.', [0, sn+1, 1, 0])
else
call setpos('.', [0, sn, 1, 0])
endif
startinsert!
endif
break
endif
let n -= 1
endwhile
endfunction
function! emmet#lang#jade#removeTag() abort
let n = line('.')
let ml = 0
while n > 0
if getline(n) =~# '^\s*\ze[a-z]'
let ml = len(matchstr(getline(n), '^\s*%[a-z]'))
break
endif
let n -= 1
endwhile
let sn = n
while n < line('$')
let l = len(matchstr(getline(n), '^\s*%[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
if sn == n
exe 'delete'
else
exe sn ',' (n-1) 'delete'
endif
endfunction
function! emmet#lang#jade#mergeLines() abort
" nothing to do
endfunction

View File

@@ -0,0 +1,51 @@
function! emmet#lang#less#findTokens(str) abort
return emmet#lang#html#findTokens(a:str)
endfunction
function! emmet#lang#less#parseIntoTree(abbr, type) abort
return emmet#lang#scss#parseIntoTree(a:abbr, a:type)
endfunction
function! emmet#lang#less#toString(settings, current, type, inline, filters, itemno, indent) abort
return emmet#lang#scss#toString(a:settings, a:current, a:type, a:inline, a:filters, a:itemno, a:indent)
endfunction
function! emmet#lang#less#imageSize() abort
call emmet#lang#css#imageSize()
endfunction
function! emmet#lang#less#imageEncode() abort
return emmet#lang#css#imageEncode()
endfunction
function! emmet#lang#less#parseTag(tag) abort
return emmet#lang#css#parseTag(a:tag)
endfunction
function! emmet#lang#less#toggleComment() abort
call emmet#lang#css#toggleComment()
endfunction
function! emmet#lang#less#balanceTag(flag) range abort
call emmet#lang#scss#balanceTag(a:flag)
endfunction
function! emmet#lang#less#moveNextPrevItem(flag) abort
return emmet#lang#less#moveNextPrev(a:flag)
endfunction
function! emmet#lang#less#moveNextPrev(flag) abort
call emmet#lang#scss#moveNextPrev(a:flag)
endfunction
function! emmet#lang#less#splitJoinTag() abort
call emmet#lang#css#splitJoinTag()
endfunction
function! emmet#lang#less#removeTag() abort
call emmet#lang#css#removeTag()
endfunction
function! emmet#lang#less#mergeLines() abort
call emmet#lang#css#mergeLines()
endfunction

View File

@@ -0,0 +1,163 @@
function! emmet#lang#sass#findTokens(str) abort
return emmet#lang#css#findTokens(a:str)
endfunction
function! emmet#lang#sass#parseIntoTree(abbr, type) abort
return emmet#lang#css#parseIntoTree(a:abbr, a:type)
endfunction
function! emmet#lang#sass#toString(settings, current, type, inline, filters, itemno, indent) abort
let settings = a:settings
let current = a:current
let type = a:type
let inline = a:inline
let filters = a:filters
let itemno = a:itemno
let indent = a:indent
let str = ''
let current_name = current.name
let current_name = substitute(current.name, '\$$', itemno+1, '')
if len(current.name) > 0
let str .= current_name
let tmp = ''
for attr in keys(current.attr)
let val = current.attr[attr]
while val =~# '\$\([^#{]\|$\)'
let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
endwhile
let attr = substitute(attr, '\$$', itemno+1, '')
if attr ==# 'id'
let str .= '#' . val
elseif attr ==# 'class'
let str .= '.' . val
else
let tmp .= attr . ': ' . val
endif
endfor
if len(tmp) > 0
let str .= "\n"
for line in split(tmp, "\n")
let str .= indent . line . "\n"
endfor
else
let str .= "\n"
endif
let inner = ''
for child in current.child
let tmp = emmet#toString(child, type, inline, filters, itemno, indent)
let tmp = substitute(tmp, "\n", "\n" . escape(indent, '\'), 'g')
let tmp = substitute(tmp, "\n" . escape(indent, '\') . '$', '${cursor}\n', 'g')
let inner .= tmp
endfor
if len(inner) > 0
let str .= indent . inner
endif
else
let text = emmet#lang#css#toString(settings, current, type, inline, filters, itemno, indent)
let text = substitute(text, '\s*;\ze\(\${[^}]\+}\)\?\(\n\|$\)', '', 'g')
return text
endif
return str
endfunction
function! emmet#lang#sass#imageSize() abort
endfunction
function! emmet#lang#sass#imageEncode() abort
endfunction
function! emmet#lang#sass#parseTag(tag) abort
endfunction
function! emmet#lang#sass#toggleComment() abort
endfunction
function! emmet#lang#sass#balanceTag(flag) range abort
let block = emmet#util#getVisualBlock()
if a:flag == -2 || a:flag == 2
let curpos = [0, line("'<"), col("'<"), 0]
else
let curpos = emmet#util#getcurpos()
endif
let n = curpos[1]
let ml = len(matchstr(getline(n), '^\s*'))
if a:flag > 0
if a:flag == 1 || !emmet#util#regionIsValid(block)
let n = line('.')
else
while n > 0
let l = len(matchstr(getline(n), '^\s*\ze[a-z]'))
if l > 0 && l < ml
let ml = l
break
endif
let n -= 1
endwhile
endif
let sn = n
if n == 0
let ml = 0
endif
while n < line('$')
let l = len(matchstr(getline(n), '^\s*[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
call setpos('.', [0, n, 1, 0])
normal! V
call setpos('.', [0, sn, 1, 0])
else
while n > 0
let l = len(matchstr(getline(n), '^\s*\ze[a-z]'))
if l > 0 && l > ml
let ml = l
break
endif
let n += 1
endwhile
let sn = n
if n == 0
let ml = 0
endif
while n < line('$')
let l = len(matchstr(getline(n), '^\s*[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
call setpos('.', [0, n, 1, 0])
normal! V
call setpos('.', [0, sn, 1, 0])
endif
endfunction
function! emmet#lang#sass#moveNextPrevItem(flag) abort
return emmet#lang#sass#moveNextPrev(a:flag)
endfunction
function! emmet#lang#sass#moveNextPrev(flag) abort
let pos = search('""\|\(^\s*|\s*\zs\)', a:flag ? 'Wpb' : 'Wp')
if pos == 2
startinsert!
elseif pos != 0
silent! normal! l
startinsert
endif
endfunction
function! emmet#lang#sass#splitJoinTag() abort
endfunction
function! emmet#lang#sass#removeTag() abort
endfunction
function! emmet#lang#sass#mergeLines() abort
endfunction

View File

@@ -0,0 +1,129 @@
function! emmet#lang#scss#findTokens(str) abort
return emmet#lang#css#findTokens(a:str)
endfunction
function! emmet#lang#scss#parseIntoTree(abbr, type) abort
if a:abbr =~# '>'
return emmet#lang#html#parseIntoTree(a:abbr, a:type)
else
return emmet#lang#css#parseIntoTree(a:abbr, a:type)
endif
endfunction
function! emmet#lang#scss#toString(settings, current, type, inline, filters, itemno, indent) abort
let settings = a:settings
let current = a:current
let type = a:type
let inline = a:inline
let filters = a:filters
let itemno = a:itemno
let indent = a:indent
let str = ''
let current_name = substitute(current.name, '\$$', itemno+1, '')
if len(current.name) > 0
let str .= current_name
let tmp = ''
for attr in keys(current.attr)
let val = current.attr[attr]
while val =~# '\$\([^#{]\|$\)'
let val = substitute(val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
endwhile
let attr = substitute(attr, '\$$', itemno+1, '')
if attr ==# 'id'
let str .= '#' . val
elseif attr ==# 'class'
let str .= '.' . val
else
let tmp .= attr . ': ' . val . ';'
endif
endfor
if len(tmp) > 0
let str .= " {\n"
for line in split(tmp, "\n")
let str .= indent . line . "\n"
endfor
else
let str .= " {\n"
endif
let inner = ''
for child in current.child
let inner .= emmet#toString(child, type, inline, filters, itemno)
endfor
let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g')
let inner = substitute(inner, "\n" . escape(indent, '\') . '$', '', 'g')
let str .= indent . inner . "${cursor}\n}\n"
else
return emmet#lang#css#toString(settings, current, type, inline, filters, itemno, indent)
endif
return str
endfunction
function! emmet#lang#scss#imageSize() abort
call emmet#lang#css#imageSize()
endfunction
function! emmet#lang#scss#imageEncode() abort
return emmet#lang#css#imageEncode()
endfunction
function! emmet#lang#scss#parseTag(tag) abort
return emmet#lang#css#parseTag(a:tag)
endfunction
function! emmet#lang#scss#toggleComment() abort
call emmet#lang#css#toggleComment()
endfunction
function! emmet#lang#scss#balanceTag(flag) range abort
if a:flag == -2 || a:flag == 2
let curpos = [0, line("'<"), col("'<"), 0]
call setpos('.', curpos)
else
let curpos = emmet#util#getcurpos()
endif
if a:flag < 0
let ret = searchpair('}', '', '.\zs{')
else
let ret = searchpair('{', '', '}', 'bW')
endif
if ret > 0
let pos1 = emmet#util#getcurpos()[1:2]
if a:flag < 0
let pos2 = searchpairpos('{', '', '}')
else
let pos2 = searchpairpos('{', '', '}')
endif
let block = [pos1, pos2]
if emmet#util#regionIsValid(block)
call emmet#util#selectRegion(block)
return
endif
endif
if a:flag == -2 || a:flag == 2
silent! exe 'normal! gv'
else
call setpos('.', curpos)
endif
endfunction
function! emmet#lang#scss#moveNextPrevItem(flag) abort
return emmet#lang#scss#moveNextPrev(a:flag)
endfunction
function! emmet#lang#scss#moveNextPrev(flag) abort
call emmet#lang#css#moveNextPrev(a:flag)
endfunction
function! emmet#lang#scss#splitJoinTag() abort
call emmet#lang#css#splitJoinTag()
endfunction
function! emmet#lang#scss#removeTag() abort
call emmet#lang#css#removeTag()
endfunction
function! emmet#lang#scss#mergeLines() abort
call emmet#lang#css#mergeLines()
endfunction

View File

@@ -0,0 +1,284 @@
function! emmet#lang#slim#findTokens(str) abort
return emmet#lang#html#findTokens(a:str)
endfunction
function! emmet#lang#slim#parseIntoTree(abbr, type) abort
return emmet#lang#html#parseIntoTree(a:abbr, a:type)
endfunction
function! emmet#lang#slim#toString(settings, current, type, inline, filters, itemno, indent) abort
let current = a:current
let type = a:type
let inline = a:inline
let filters = a:filters
let itemno = a:itemno
let indent = emmet#getIndentation(type)
let dollar_expr = emmet#getResource(type, 'dollar_expr', 1)
let str = ''
let current_name = current.name
if dollar_expr
let current_name = substitute(current.name, '\$$', itemno+1, '')
endif
if len(current.name) > 0
let str .= current_name
for attr in emmet#util#unique(current.attrs_order + keys(current.attr))
if !has_key(current.attr, attr)
continue
endif
let Val = current.attr[attr]
if type(Val) == 2 && Val == function('emmet#types#true')
let str .= ' ' . attr . '=true'
else
if dollar_expr
while Val =~# '\$\([^#{]\|$\)'
let Val = substitute(Val, '\(\$\+\)\([^{]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
endwhile
endif
let attr = substitute(attr, '\$$', itemno+1, '')
let str .= ' ' . attr . '="' . Val . '"'
endif
endfor
let inner = ''
if len(current.value) > 0
let str .= "\n"
let text = current.value[1:-2]
if dollar_expr
let text = substitute(text, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let text = substitute(text, '\${nr}', "\n", 'g')
let text = substitute(text, '\\\$', '$', 'g')
let str = substitute(str, '\$#', text, 'g')
endif
for line in split(text, "\n")
let str .= indent . '| ' . line . "\n"
endfor
elseif len(current.child) == 0
let str .= '${cursor}'
endif
if len(current.child) == 1 && len(current.child[0].name) == 0
let str .= "\n"
let text = current.child[0].value[1:-2]
if dollar_expr
let text = substitute(text, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let text = substitute(text, '\${nr}', "\n", 'g')
let text = substitute(text, '\\\$', '$', 'g')
endif
for line in split(text, "\n")
let str .= indent . '| ' . line . "\n"
endfor
elseif len(current.child) > 0
for child in current.child
let inner .= emmet#toString(child, type, inline, filters, itemno, indent)
endfor
let inner = substitute(inner, "\n", "\n" . escape(indent, '\'), 'g')
let inner = substitute(inner, "\n" . escape(indent, '\') . '$', '', 'g')
let str .= "\n" . indent . inner
endif
else
let str = current.value[1:-2]
if dollar_expr
let str = substitute(str, '\%(\\\)\@\<!\(\$\+\)\([^{#]\|$\)', '\=printf("%0".len(submatch(1))."d", itemno+1).submatch(2)', 'g')
let str = substitute(str, '\${nr}', "\n", 'g')
let str = substitute(str, '\\\$', '$', 'g')
endif
endif
if str !~# "\n$"
let str .= "\n"
endif
return str
endfunction
function! emmet#lang#slim#imageSize() abort
let line = getline('.')
let current = emmet#lang#slim#parseTag(line)
if empty(current) || !has_key(current.attr, 'src')
return
endif
let fn = current.attr.src
if fn =~# '^\s*$'
return
elseif fn !~# '^\(/\|http\)'
let fn = simplify(expand('%:h') . '/' . fn)
endif
let [width, height] = emmet#util#getImageSize(fn)
if width == -1 && height == -1
return
endif
let current.attr.width = width
let current.attr.height = height
let current.attrs_order += ['width', 'height']
let slim = emmet#toString(current, 'slim', 1)
let slim = substitute(slim, '\${cursor}', '', '')
call setline('.', substitute(matchstr(line, '^\s*') . slim, "\n", '', 'g'))
endfunction
function! emmet#lang#slim#imageEncode() abort
endfunction
function! emmet#lang#slim#parseTag(tag) abort
let current = emmet#newNode()
let mx = '\([a-zA-Z][a-zA-Z0-9]*\)\s\+\(.*\)'
let match = matchstr(a:tag, mx)
let current.name = substitute(match, mx, '\1', '')
let attrs = substitute(match, mx, '\2', '')
let mx = '\([a-zA-Z0-9]\+\)=\%(\([^"'' \t]\+\)\|"\([^"]\{-}\)"\|''\([^'']\{-}\)''\)'
while len(attrs) > 0
let match = matchstr(attrs, mx)
if len(match) == 0
break
endif
let attr_match = matchlist(match, mx)
let name = attr_match[1]
let value = len(attr_match[2]) ? attr_match[2] : attr_match[3]
let current.attr[name] = value
let current.attrs_order += [name]
let attrs = attrs[stridx(attrs, match) + len(match):]
endwhile
return current
endfunction
function! emmet#lang#slim#toggleComment() abort
let line = getline('.')
let space = matchstr(line, '^\s*')
if line =~# '^\s*/'
call setline('.', space . line[len(space)+1:])
elseif line =~# '^\s*[a-z]'
call setline('.', space . '/' . line[len(space):])
endif
endfunction
function! emmet#lang#slim#balanceTag(flag) range abort
let block = emmet#util#getVisualBlock()
if a:flag == -2 || a:flag == 2
let curpos = [0, line("'<"), col("'<"), 0]
else
let curpos = emmet#util#getcurpos()
endif
let n = curpos[1]
let ml = len(matchstr(getline(n), '^\s*'))
if a:flag > 0
if a:flag == 1 || !emmet#util#regionIsValid(block)
let n = line('.')
else
while n > 0
let l = len(matchstr(getline(n), '^\s*\ze[a-z]'))
if l > 0 && l < ml
let ml = l
break
endif
let n -= 1
endwhile
endif
let sn = n
if n == 0
let ml = 0
endif
while n < line('$')
let l = len(matchstr(getline(n), '^\s*[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
call setpos('.', [0, n, 1, 0])
normal! V
call setpos('.', [0, sn, 1, 0])
else
while n > 0
let l = len(matchstr(getline(n), '^\s*\ze[a-z]'))
if l > 0 && l > ml
let ml = l
break
endif
let n += 1
endwhile
let sn = n
if n == 0
let ml = 0
endif
while n < line('$')
let l = len(matchstr(getline(n), '^\s*[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
call setpos('.', [0, n, 1, 0])
normal! V
call setpos('.', [0, sn, 1, 0])
endif
endfunction
function! emmet#lang#slim#moveNextPrevItem(flag) abort
return emmet#lang#slim#moveNextPrev(a:flag)
endfunction
function! emmet#lang#slim#moveNextPrev(flag) abort
let pos = search('""\|\(^\s*|\s*\zs\)', a:flag ? 'Wpb' : 'Wp')
if pos == 2
startinsert!
elseif pos != 0
silent! normal! l
startinsert
endif
endfunction
function! emmet#lang#slim#splitJoinTag() abort
let n = line('.')
while n > 0
if getline(n) =~# '^\s*\ze[a-z]'
let sn = n
let n += 1
if getline(n) =~# '^\s*|'
while n <= line('$')
if getline(n) !~# '^\s*|'
break
endif
exe n 'delete'
endwhile
call setpos('.', [0, sn, 1, 0])
else
let spaces = matchstr(getline(sn), '^\s*')
call append(sn, spaces . ' | ')
call setpos('.', [0, sn+1, 1, 0])
startinsert!
endif
break
endif
let n -= 1
endwhile
endfunction
function! emmet#lang#slim#removeTag() abort
let n = line('.')
let ml = 0
while n > 0
if getline(n) =~# '^\s*\ze[a-z]'
let ml = len(matchstr(getline(n), '^\s*[a-z]'))
break
endif
let n -= 1
endwhile
let sn = n
while n < line('$')
let l = len(matchstr(getline(n), '^\s*[a-z]'))
if l > 0 && l <= ml
let n -= 1
break
endif
let n += 1
endwhile
if sn == n
exe 'delete'
else
exe sn ',' (n-1) 'delete'
endif
endfunction
function! emmet#lang#slim#mergeLines() abort
endfunction

View File

@@ -0,0 +1,65 @@
function! emmet#lorem#en#expand(command) abort
let wcount = matchstr(a:command, '\(\d*\)$')
let wcount = wcount > 0 ? wcount : 30
let common = ['lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipisicing', 'elit']
let words = ['exercitationem', 'perferendis', 'perspiciatis', 'laborum', 'eveniet',
\ 'sunt', 'iure', 'nam', 'nobis', 'eum', 'cum', 'officiis', 'excepturi',
\ 'odio', 'consectetur', 'quasi', 'aut', 'quisquam', 'vel', 'eligendi',
\ 'itaque', 'non', 'odit', 'tempore', 'quaerat', 'dignissimos',
\ 'facilis', 'neque', 'nihil', 'expedita', 'vitae', 'vero', 'ipsum',
\ 'nisi', 'animi', 'cumque', 'pariatur', 'velit', 'modi', 'natus',
\ 'iusto', 'eaque', 'sequi', 'illo', 'sed', 'ex', 'et', 'voluptatibus',
\ 'tempora', 'veritatis', 'ratione', 'assumenda', 'incidunt', 'nostrum',
\ 'placeat', 'aliquid', 'fuga', 'provident', 'praesentium', 'rem',
\ 'necessitatibus', 'suscipit', 'adipisci', 'quidem', 'possimus',
\ 'voluptas', 'debitis', 'sint', 'accusantium', 'unde', 'sapiente',
\ 'voluptate', 'qui', 'aspernatur', 'laudantium', 'soluta', 'amet',
\ 'quo', 'aliquam', 'saepe', 'culpa', 'libero', 'ipsa', 'dicta',
\ 'reiciendis', 'nesciunt', 'doloribus', 'autem', 'impedit', 'minima',
\ 'maiores', 'repudiandae', 'ipsam', 'obcaecati', 'ullam', 'enim',
\ 'totam', 'delectus', 'ducimus', 'quis', 'voluptates', 'dolores',
\ 'molestiae', 'harum', 'dolorem', 'quia', 'voluptatem', 'molestias',
\ 'magni', 'distinctio', 'omnis', 'illum', 'dolorum', 'voluptatum', 'ea',
\ 'quas', 'quam', 'corporis', 'quae', 'blanditiis', 'atque', 'deserunt',
\ 'laboriosam', 'earum', 'consequuntur', 'hic', 'cupiditate',
\ 'quibusdam', 'accusamus', 'ut', 'rerum', 'error', 'minus', 'eius',
\ 'ab', 'ad', 'nemo', 'fugit', 'officia', 'at', 'in', 'id', 'quos',
\ 'reprehenderit', 'numquam', 'iste', 'fugiat', 'sit', 'inventore',
\ 'beatae', 'repellendus', 'magnam', 'recusandae', 'quod', 'explicabo',
\ 'doloremque', 'aperiam', 'consequatur', 'asperiores', 'commodi',
\ 'optio', 'dolor', 'labore', 'temporibus', 'repellat', 'veniam',
\ 'architecto', 'est', 'esse', 'mollitia', 'nulla', 'a', 'similique',
\ 'eos', 'alias', 'dolore', 'tenetur', 'deleniti', 'porro', 'facere',
\ 'maxime', 'corrupti']
let ret = []
let sentence = 0
for i in range(wcount)
let arr = common
if sentence > 0
let arr += words
endif
let r = emmet#util#rand()
let word = arr[r % len(arr)]
if sentence == 0
let word = substitute(word, '^.', '\U&', '')
endif
let sentence += 1
call add(ret, word)
if (sentence > 5 && emmet#util#rand() < 10000) || i == wcount - 1
if i == wcount - 1
let endc = '?!...'[emmet#util#rand() % 5]
call add(ret, endc)
else
let endc = '?!,...'[emmet#util#rand() % 6]
call add(ret, endc . ' ')
endif
if endc !=# ','
let sentence = 0
endif
else
call add(ret, ' ')
endif
endfor
return join(ret, '')
endfunction

View File

@@ -0,0 +1,27 @@
scriptencoding utf-8
function! emmet#lorem#ja#expand(command) abort
let wcount = matchstr(a:command, '^\%(lorem\|lipsum\)\(\d*\)}$', '\1', '')
let wcount = wcount > 0 ? wcount : 30
let url = "http://www.aozora.gr.jp/cards/000081/files/470_15407.html"
let content = emmet#util#cache(url)
if len(content) == 0
let content = emmet#util#getContentFromURL(url)
let content = matchstr(content, '<div[^>]*>\zs.\{-}</div>')
let content = substitute(content, '[ \r]', '', 'g')
let content = substitute(content, '<br[^>]*>', "\n", 'g')
let content = substitute(content, '<[^>]\+>', '', 'g')
let content = join(filter(split(content, "\n"), 'len(v:val)>0'), "\n")
call emmet#util#cache(url, content)
endif
let content = substitute(content, "、\n", "、", "g")
let clines = split(content, '\n')
let lines = filter(clines, 'len(substitute(v:val,".",".","g"))<=wcount')
if len(lines) == 0
let lines = clines
endif
let r = emmet#util#rand()
return lines[r % len(lines)]
endfunction

412
autoload/emmet/util.vim Normal file
View File

@@ -0,0 +1,412 @@
"==============================================================================
" region utils
"==============================================================================
" deleteContent : delete content in region
" if region make from between '<foo>' and '</foo>'
" --------------------
" begin:<foo>
" </foo>:end
" --------------------
" this function make the content as following
" --------------------
" begin::end
" --------------------
function! emmet#util#deleteContent(region) abort
let lines = getline(a:region[0][0], a:region[1][0])
call setpos('.', [0, a:region[0][0], a:region[0][1], 0])
silent! exe 'delete '.(a:region[1][0] - a:region[0][0])
call setline(line('.'), lines[0][:a:region[0][1]-2] . lines[-1][a:region[1][1]])
endfunction
" change_content : change content in region
" if region make from between '<foo>' and '</foo>'
" --------------------
" begin:<foo>
" </foo>:end
" --------------------
" and content is
" --------------------
" foo
" bar
" baz
" --------------------
" this function make the content as following
" --------------------
" begin:foo
" bar
" baz:end
" --------------------
function! emmet#util#setContent(region, content) abort
let newlines = split(a:content, '\n', 1)
let oldlines = getline(a:region[0][0], a:region[1][0])
call setpos('.', [0, a:region[0][0], a:region[0][1], 0])
silent! exe 'delete '.(a:region[1][0] - a:region[0][0])
if len(newlines) == 0
let tmp = ''
if a:region[0][1] > 1
let tmp = oldlines[0][:a:region[0][1]-2]
endif
if a:region[1][1] >= 1
let tmp .= oldlines[-1][a:region[1][1]:]
endif
call setline(line('.'), tmp)
elseif len(newlines) == 1
if a:region[0][1] > 1
let newlines[0] = oldlines[0][:a:region[0][1]-2] . newlines[0]
endif
if a:region[1][1] >= 1
let newlines[0] .= oldlines[-1][a:region[1][1]:]
endif
call setline(line('.'), newlines[0])
else
if a:region[0][1] > 1
let newlines[0] = oldlines[0][:a:region[0][1]-2] . newlines[0]
endif
if a:region[1][1] >= 1
let newlines[-1] .= oldlines[-1][a:region[1][1]:]
endif
call setline(line('.'), newlines[0])
call append(line('.'), newlines[1:])
endif
endfunction
" select_region : select region
" this function make a selection of region
function! emmet#util#selectRegion(region) abort
call setpos('.', [0, a:region[1][0], a:region[1][1], 0])
normal! v
call setpos('.', [0, a:region[0][0], a:region[0][1], 0])
endfunction
" point_in_region : check point is in the region
" this function return 0 or 1
function! emmet#util#pointInRegion(point, region) abort
if !emmet#util#regionIsValid(a:region) | return 0 | endif
if a:region[0][0] > a:point[0] | return 0 | endif
if a:region[1][0] < a:point[0] | return 0 | endif
if a:region[0][0] == a:point[0] && a:region[0][1] > a:point[1] | return 0 | endif
if a:region[1][0] == a:point[0] && a:region[1][1] < a:point[1] | return 0 | endif
return 1
endfunction
" cursor_in_region : check cursor is in the region
" this function return 0 or 1
function! emmet#util#cursorInRegion(region) abort
if !emmet#util#regionIsValid(a:region) | return 0 | endif
let cur = emmet#util#getcurpos()[1:2]
return emmet#util#pointInRegion(cur, a:region)
endfunction
" region_is_valid : check region is valid
" this function return 0 or 1
function! emmet#util#regionIsValid(region) abort
if a:region[0][0] == 0 || a:region[1][0] == 0 | return 0 | endif
return 1
endfunction
" search_region : make region from pattern which is composing start/end
" this function return array of position
function! emmet#util#searchRegion(start, end) abort
let b = searchpairpos(a:start, '', a:end, 'bcnW')
if b == [0, 0]
return [searchpairpos(a:start, '', a:end, 'bnW'), searchpairpos(a:start, '\%#', a:end, 'nW')]
else
return [b, searchpairpos(a:start, '', a:end. '', 'nW')]
endif
endfunction
" get_content : get content in region
" this function return string in region
function! emmet#util#getContent(region) abort
if !emmet#util#regionIsValid(a:region)
return ''
endif
let lines = getline(a:region[0][0], a:region[1][0])
if a:region[0][0] == a:region[1][0]
let lines[0] = lines[0][a:region[0][1]-1:a:region[1][1]-1]
else
let lines[0] = lines[0][a:region[0][1]-1:]
let lines[-1] = lines[-1][:a:region[1][1]-1]
endif
return join(lines, "\n")
endfunction
" region_in_region : check region is in the region
" this function return 0 or 1
function! emmet#util#regionInRegion(outer, inner) abort
if !emmet#util#regionIsValid(a:inner) || !emmet#util#regionIsValid(a:outer)
return 0
endif
return emmet#util#pointInRegion(a:inner[0], a:outer) && emmet#util#pointInRegion(a:inner[1], a:outer)
endfunction
" get_visualblock : get region of visual block
" this function return region of visual block
function! emmet#util#getVisualBlock() abort
return [[line("'<"), col("'<")], [line("'>"), col("'>")]]
endfunction
"==============================================================================
" html utils
"==============================================================================
function! emmet#util#getContentFromURL(url) abort
let res = system(printf('%s -i %s', g:emmet_curl_command, shellescape(substitute(a:url, '#.*', '', ''))))
while res =~# '^HTTP/1.\d 3' || res =~# '^HTTP/1\.\d 200 Connection established' || res =~# '^HTTP/1\.\d 100 Continue'
let pos = stridx(res, "\r\n\r\n")
if pos != -1
let res = strpart(res, pos+4)
else
let pos = stridx(res, "\n\n")
let res = strpart(res, pos+2)
endif
endwhile
let pos = stridx(res, "\r\n\r\n")
if pos != -1
let content = strpart(res, pos+4)
else
let pos = stridx(res, "\n\n")
let content = strpart(res, pos+2)
endif
let header = res[:pos-1]
let charset = matchstr(content, '<meta[^>]\+content=["''][^;"'']\+;\s*charset=\zs[^;"'']\+\ze["''][^>]*>')
if len(charset) == 0
let charset = matchstr(content, '<meta\s\+charset=["'']\?\zs[^"'']\+\ze["'']\?[^>]*>')
endif
if len(charset) == 0
let charset = matchstr(header, '\nContent-Type:.* charset=[''"]\?\zs[^''";\n]\+\ze')
endif
if len(charset) == 0
let s1 = len(split(content, '?'))
let utf8 = iconv(content, 'utf-8', &encoding)
let s2 = len(split(utf8, '?'))
return (s2 == s1 || s2 >= s1 * 2) ? utf8 : content
endif
return iconv(content, charset, &encoding)
endfunction
function! emmet#util#getTextFromHTML(buf) abort
let threshold_len = 100
let threshold_per = 0.1
let buf = a:buf
let buf = strpart(buf, stridx(buf, '</head>'))
let buf = substitute(buf, '<style[^>]*>.\{-}</style>', '', 'g')
let buf = substitute(buf, '<script[^>]*>.\{-}</script>', '', 'g')
let res = ''
let max = 0
let mx = '\(<td[^>]\{-}>\)\|\(<\/td>\)\|\(<div[^>]\{-}>\)\|\(<\/div>\)'
let m = split(buf, mx)
for str in m
let c = split(str, '<[^>]*?>')
let str = substitute(str, '<[^>]\{-}>', ' ', 'g')
let str = substitute(str, '&gt;', '>', 'g')
let str = substitute(str, '&lt;', '<', 'g')
let str = substitute(str, '&quot;', '"', 'g')
let str = substitute(str, '&apos;', '''', 'g')
let str = substitute(str, '&nbsp;', ' ', 'g')
let str = substitute(str, '&yen;', '\&#65509;', 'g')
let str = substitute(str, '&amp;', '\&', 'g')
let str = substitute(str, '^\s*\(.*\)\s*$', '\1', '')
let str = substitute(str, '\s\+', ' ', 'g')
let l = len(str)
if l > threshold_len
let per = (l+0.0) / len(c)
if max < l && per > threshold_per
let max = l
let res = str
endif
endif
endfor
let res = substitute(res, '^\s*\(.*\)\s*$', '\1', 'g')
return res
endfunction
function! emmet#util#getImageSize(fn) abort
let fn = a:fn
if emmet#util#isImageMagickInstalled()
return emmet#util#imageSizeWithImageMagick(fn)
endif
if filereadable(fn)
let hex = substitute(system('xxd -p "'.fn.'"'), '\n', '', 'g')
else
if fn !~# '^\w\+://'
let path = fnamemodify(expand('%'), ':p:gs?\\?/?')
if has('win32') || has('win64') |
let path = tolower(path)
endif
for k in keys(g:emmet_docroot)
let root = fnamemodify(k, ':p:gs?\\?/?')
if has('win32') || has('win64') |
let root = tolower(root)
endif
if stridx(path, root) == 0
let v = g:emmet_docroot[k]
let fn = (len(v) == 0 ? k : v) . fn
break
endif
endfor
endif
let hex = substitute(system(g:emmet_curl_command.' "'.fn.'" | xxd -p'), '\n', '', 'g')
endif
let [width, height] = [-1, -1]
if hex =~# '^89504e470d0a1a0a'
let width = eval('0x'.hex[32:39])
let height = eval('0x'.hex[40:47])
endif
if hex =~# '^ffd8'
let pos = 4
while pos < len(hex)
let bs = hex[pos+0:pos+3]
let pos += 4
if bs ==# 'ffc0' || bs ==# 'ffc2'
let pos += 6
let height = eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3])
let pos += 4
let width = eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3])
break
elseif bs =~# 'ffd[9a]'
break
elseif bs =~# 'ff\(e[0-9a-e]\|fe\|db\|dd\|c4\)'
let pos += (eval('0x'.hex[pos+0:pos+1])*256 + eval('0x'.hex[pos+2:pos+3])) * 2
endif
endwhile
endif
if hex =~# '^47494638'
let width = eval('0x'.hex[14:15].hex[12:13])
let height = eval('0x'.hex[18:19].hex[16:17])
endif
return [width, height]
endfunction
function! emmet#util#imageSizeWithImageMagick(fn) abort
let img_info = system('identify -format "%wx%h" "'.a:fn.'"')
let img_size = split(substitute(img_info, '\n', '', ''), 'x')
if len(img_size) != 2
return [-1, -1]
endif
return img_size
endfunction
function! emmet#util#isImageMagickInstalled() abort
if !get(g:, 'emmet_use_identify', 1)
return 0
endif
return executable('identify')
endfunction
function! s:b64encode(bytes, table, pad)
let b64 = []
for i in range(0, len(a:bytes) - 1, 3)
let n = a:bytes[i] * 0x10000
\ + get(a:bytes, i + 1, 0) * 0x100
\ + get(a:bytes, i + 2, 0)
call add(b64, a:table[n / 0x40000])
call add(b64, a:table[n / 0x1000 % 0x40])
call add(b64, a:table[n / 0x40 % 0x40])
call add(b64, a:table[n % 0x40])
endfor
if len(a:bytes) % 3 == 2
let b64[-1] = a:pad
elseif len(a:bytes) % 3 == 1
let b64[-1] = a:pad
let b64[-2] = a:pad
endif
return b64
endfunction
function! emmet#util#imageEncodeDecode(fn, flag) abort
let fn = a:fn
if filereadable(fn)
let hex = substitute(system('xxd -p "'.fn.'"'), '\n', '', 'g')
else
if fn !~# '^\w\+://'
let path = fnamemodify(expand('%'), ':p:gs?\\?/?')
if has('win32') || has('win64') |
let path = tolower(path)
endif
for k in keys(g:emmet_docroot)
let root = fnamemodify(k, ':p:gs?\\?/?')
if has('win32') || has('win64') |
let root = tolower(root)
endif
if stridx(path, root) == 0
let v = g:emmet_docroot[k]
let fn = (len(v) == 0 ? k : v) . fn
break
endif
endfor
endif
let hex = substitute(system(g:emmet_curl_command.' "'.fn.'" | xxd -p'), '\n', '', 'g')
endif
let bin = map(split(hex, '..\zs'), 'eval("0x" . v:val)')
let table = split('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', '\zs')
let ret = 'data:image/'
if hex =~# '^89504e470d0a1a0a'
let ret .= 'png'
elseif hex =~# '^ffd8'
let ret .= 'jpeg'
elseif hex =~# '^47494638'
let ret .= 'gif'
elseif hex =~# '^00000020667479706176696600000000'
let ret .= 'avif'
else
let ret .= 'unknown'
endif
return ret . ';base64,' . join(s:b64encode(bin, table, '='), '')
endfunction
function! emmet#util#unique(arr) abort
let m = {}
let r = []
for i in a:arr
if !has_key(m, i)
let m[i] = 1
call add(r, i)
endif
endfor
return r
endfunction
let s:seed = localtime()
function! emmet#util#srand(seed) abort
let s:seed = a:seed
endfunction
function! emmet#util#rand() abort
let s:seed = s:seed * 214013 + 2531011
return (s:seed < 0 ? s:seed - 0x80000000 : s:seed) / 0x10000 % 0x8000
endfunction
function! emmet#util#cache(name, ...) abort
let content = get(a:000, 0, '')
let dir = expand('~/.emmet/cache')
if !isdirectory(dir)
call mkdir(dir, 'p', 0700)
endif
let file = dir . '/' . substitute(a:name, '\W', '_', 'g')
if len(content) == 0
if !filereadable(file)
return ''
endif
return join(readfile(file), "\n")
endif
call writefile(split(content, "\n"), file)
endfunction
function! emmet#util#getcurpos() abort
let pos = getpos('.')
if mode(0) ==# 'i' && pos[2] > 0
let pos[2] -=1
endif
return pos
endfunction
function! emmet#util#closePopup() abort
return pumvisible() ? "\<c-e>" : ''
endfunction

1771
doc/emmet.txt Normal file

File diff suppressed because it is too large Load Diff

BIN
doc/screenshot.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

1
docs Submodule

Submodule docs added at ff5a094cc8

277
emmet.vim.vimup Normal file
View File

@@ -0,0 +1,277 @@
script_name: Emmet.vim
script_id: '2981'
script_type: utility
script_package: emmet-vim.zip
script_version: '0.86'
required_vim_version: '7.0'
summary: vim plugins for HTML and CSS hi-speed coding.
detailed_description: |
This is vim script support expanding abbreviation like emmet.
ref: http://emmet.io/
There is a movie using emmet.vim
ref: http://mattn.github.com/emmet-vim
Source Repository.
ref: http://github.com/mattn/emmet-vim
Type abbreviation
+-------------------------------------
| html:5_
+-------------------------------------
"_" is a cursor position. and type "<c-y>," (Ctrl + y and Comma)
NOTE: Don't worry about key map. you can change it easily.
+-------------------------------------
| <!DOCTYPE HTML>
| <html lang="en">
| <head>
| <title></title>
| <meta charset="UTF-8">
| </head>
| <body>
| _
| </body>
| </html>
+-------------------------------------
Type following
+-------------------------------------
| div#foo$*2>div.bar
+-------------------------------------
And type "<c-y>,"
+-------------------------------------
|<div id="foo1">
| <div class="bar">_</div>
|</div>
|<div id="foo2">
| <div class="bar"></div>
|</div>
| _
+-------------------------------------
Tutorial:
http://github.com/mattn/emmet-vim/raw/master/TUTORIAL
How work this:
http://mattn.github.com/emmet-vim
Tips:
You can customize behavior of expanding with overriding config.
This configuration will be merged at loading plugin.
let g:user_emmet_settings = {
\ 'indentation' : ' ',
\ 'perl' : {
\ 'aliases' : {
\ 'req' : 'require '
\ },
\ 'snippets' : {
\ 'use' : "use strict\nuse warnings\n\n",
\ 'warn' : "warn \"|\";",
\ }
\ }
\}
let g:user_emmet_expandabbr_key = '<c-e>'
let g:use_emmet_complete_tag = 1
You can set language attribute in html using emmet_settings['lang'].
install_details: |
# cd ~/.vim
# unzip emmet-vim.zip
or if you install pathogen.vim:
# cd ~/.vim/bundle # or make directory
# unzip /path/to/emmet-vim.zip
if you get sources from repository:
# cd ~/.vim/bundle # or make directory
# git clone http://github.com/mattn/emmet-vim.git
versions:
- '0.86': |
This is an upgrade for Emmet.vim: lot of bug fixes.
- '0.85': |
This is an upgrade for Emmet.vim: lot of bug fixes.
- '0.84': |
This is an upgrade for Emmet.vim: lot of bug fixes. fix bug that interpose insert completion plugins.
- '0.83': |
This is an upgrade for Emmet.vim: lot of bug fixes.
- '0.82': |
This is an upgrade for Emmet.vim: many bug fixes.
- '0.81': |
Release of Emmet.vim: renamed from ZenCoding.vim.
- '0.80': |
This is an upgrade for ZenCoding.vim: add emmet features.
- '0.74': |
This is an upgrade for ZenCoding.vim: many bug fixes.
- '0.73': |
This is an upgrade for ZenCoding.vim: many bug fixes. and support slim format (experimental).
- '0.72': |
This is an upgrade for ZenCoding.vim:
[fix] fix finding tokens.
- '0.71': |
This is an upgrade for ZenCoding.vim:
[fix] fix finding begin of tokens.
- '0.70': |
This is an upgrade for ZenCoding.vim:
[mod] Changed behavior of expanding. "div div>a|" should keep first div element.
[add] Supported slim formatter.
- '0.60': |
This is an upgrade for ZenCoding.vim:
[fix] fixed expanding {{}}.
- '0.59': |
This is an upgrade for ZenCoding.vim:
[fix] fixed toggleComment and mny bugs.
- '0.58': |
This is an upgrade for ZenCoding.vim:
[fix] fixed 'foo+' style expandos.
- '0.57': |
This is an upgrade for ZenCoding.vim:
[fix] fixed expandos that don't work 'choose' in xsl.
- '0.56': |
This is an upgrade for ZenCoding.vim:
[fix] fixed contents parser.
- '0.55': |
uploaded again: sorry, files was old.
- '0.54': |
[add] support sass, xsd.
[fix] expanding with html tag.
uploaded again: sorry, fileformat was DOS.
- '0.53': |
[fix] gif width/height was swapped.
- '0.52': |
[fix] broken wrap expanding.
- '0.51': |
This is an upgrade for ZenCoding.vim:
[fix] wrap expanding with '&'.
[fix] expand .content to class="content".
[fix] haml expanding.
[fix] bg+ snippet
- '0.50': |
This is an upgrade for ZenCoding.vim:
[fix] fixed parsing '#{{foo}}' and '.{{bar}}'.
- '0.49': |
This is an upgrade for ZenCoding.vim:
[doc] add help manual.
- '0.48': |
This is an upgrade for ZenCoding.vim:
[fix] install mappings to global.
- '0.47': |
This is an upgrade for ZenCoding.vim:
[drastic changes] enable autoload. you should whole replace older files.
package was empty. upload again.
- '0.46': |
This is an upgrade for ZenCoding.vim:
[drastic changes] enable autoload. you should whole replace older files.
- '0.45': |
This is an upgrade for ZenCoding.vim:
fixed attribute parsing like: a[href="hello', world" rel].
- '0.44': |
This is an upgrade for ZenCoding.vim:
fixed checking whether have mapping using maparg() / hasmapto().
- '0.43': |
This is an upgrade for ZenCoding.vim:
fixed behavior for nested block. like "html:5>#page>(header#globalHeader>(hgroup>h1+h2)+(nav>ul>li*3>a)+(form>p.siteSearch>input+input[type=button]))+(#contents>(#main>(section>h2+p*5)+p.pagetop>a[href=#page])+(#sub>p+(nav>ul>li>a)))+(footer#globalFoooter>(ul>li>a)+(p.copyright>small))"
- '0.42': |
This is an upgrade for ZenCoding.vim:
fixed select/option indent.
- '0.41': |
This is an upgrade for ZenCoding.vim:
fixed default filter. when using 'e' filter, output become empty.
- '0.40': |
This is an upgrade for ZenCoding.vim:
add the pure vimscript code for 'get image size'. you can use it without perl interface just now.
change key assign of ZenCodingExpandWord from ',' to ';'. it don't effect to most users.
- '0.39': |
This is an upgrade for ZenCoding.vim: fixed problem about 'selection'. see http://github.com/mattn/zencoding-vim/issues/#issue/2
- '0.38': |
This is an upgrade for ZenCoding.vim: use v7h"_s instead of v7hs for backspace.
- '0.37': |
This is an upgrade for ZenCoding.vim: fixed problem that won't working with some 'backspace' options.
- '0.36': |
This is an upgrade for ZenCoding.vim: fixed problem that filter does not work.
- '0.35': |
This is an upgrade for ZenCoding.vim: enable zencoding for other languages. (meaning php also)
- '0.34': |
This is an upgrade for ZenCoding.vim: enable zencoding for xsl. (you should add ~/.vim/ftplugin/xslt/zencoding.vim)
- '0.33': |
This is an upgrade for ZenCoding.vim: fixed problem breaking multibyte when cursor is in a part of line. enabled zencoding for javascript in html.
- '0.32': |
This is an upgrade for ZenCoding.vim: fixed indentation. supported extends so that you can enable zencoding for php/xhtml/haml other's section 14 in http://github.com/mattn/zencoding-vim/raw/master/TUTORIAL
- '0.31': |
This is an upgrade for ZenCoding.vim: fixed indentation and $$$ problem. fixed about missing support multiple classes.
- '0.30': |
This is an upgrade for ZenCoding.vim: Fixed key assign.
- '0.29': |
This is an upgrade for ZenCoding.vim: Changed leading key to '<c-y>' from '<c-z>'.
- '0.28': |
This is an upgrade for ZenCoding.vim: supported 'Balance Tag Inward/Outward', 'Go to Next/Previous Edit Point', 'Update <img> Size', 'Remove Tag', 'Split/Join Tag', 'Toggle Comment'
- '0.27': |
This is an upgrade for ZenCoding.vim: fixed problem that can't work on the part of multibyte characters. fixed inline elements behavior.
- '0.26': |
This is an upgrade for ZenCoding.vim: The count of '(((a#foo + a#bar)*2)*3)' should be 12.
- '0.25': |
This is an upgrade for ZenCoding.vim: store undo before working. good luck about 'table>(tr>td*3)*4'.
- '0.24': |
This is an upgrade for ZenCoding.vim: fixed behavior of parsing area of visual selection.
- '0.23': |
This is an upgrade for ZenCoding.vim: pre-expand '#header>li<#content' to 'div#header>li<div#content'. support () expression.
- '0.22': |
This is an upgrade for ZenCoding.vim: expand 'ul+' to 'ul>li'. fix undo ring. support visual selection. when type trigger key on visual select, it request you leader like 'ul>li'. if you give 'ul>li*' as leader, you'll get each separate 'ul>li' tags. and when you give 'blockquote' as leader, you'll get blocked text.
- '0.21': |
This is an upgrade for ZenCoding.vim: treat xhtml as html.
- '0.20': |
This is an upgrade for ZenCoding.vim: add option use_zen_complete_tag for complete abbr.
- '0.19': |
This is an upgrade for ZenCoding.vim: fixed problem that couldn't expand 'link:css' correctly.
- '0.18': |
This is an upgrade for ZenCoding.vim: ignore duplicate key map.
- '0.17': |
This is an upgrade for ZenCoding.vim: fixed key map.
- '0.16': |
This is an upgrade for ZenCoding.vim: fixed problem 'endless loop'.
- '0.15': |
This is an upgrade for ZenCoding.vim: set default filetype to 'html'.
- '0.14': |
This is an upgrade for ZenCoding.vim: fixed tag name like 'fs:n' in 'css'.
- '0.14': |
This is an upgrade for ZenCoding.vim: indentation for each languages.
- '0.13': |
This is an upgrade for ZenCoding.vim: user key map.
- '0.12': |
This is an upgrade for ZenCoding.vim: few extensive notation.
- '0.11': |
This is an upgrade for ZenCoding.vim: fixed indent.
- '0.10': |
This is an upgrade for ZenCoding.vim: fixed behavior of '+' operator
- '0.9': |
This is an upgrade for ZenCoding.vim: fixed single line behavior
- '0.8': |
This is an upgrade for ZenCoding.vim: support 'a[href=http://www.google.com]{Google}'
- '0.7': |
This is an upgrade for ZenCoding.vim: fixed behavior in 'a+b'.
- '0.6': |
This is an upgrade for ZenCoding.vim: fixed strange behavior about '<a href="">b_</a>'.
- '0.5': |
This is an upgrade for ZenCoding.vim: recover rest part in line.
- '0.4': |
This is an upgrade for ZenCoding.vim: fixed cursor position. fixed ${lang} replacement.
- '0.3': |
This is an upgrade for ZenCoding.vim: fixed line expanding.
- '0.2': |
This is an upgrade for ZenCoding.vim: fixed problem that moving cursor with expanding.
- '0.1': |
Initial upload
# __END__
# vim: filetype=yaml

View File

@@ -1,85 +0,0 @@
<!doctype html>
<head>
<title>Emmet.vim</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="static/css/style-sites.css" type="text/css" />
<!--[if IE]>
<script type="text/javascript">
document.createElement('header');
document.createElement('section');
document.createElement('nav');
document.createElement('aside');
document.createElement('footer');
document.createElement('article');
</script>
<![endif]-->
</head>
<body>
<img id="logo" src="static/images/emmet-vim-logo.png" title="禅" alt="禅" />
<h2>vim plugins for HTML and CSS hi-speed coding.</h2>
<section id="content">
<div class="blocked-content">
<article id="whats">
<h2 class="maintitle">Whats</h2>
<p>emmet for vim</p>
</article>
</div>
<br />
<div class="blocked-content">
<article id="install">
<h2 class="maintitle">Install</h2>
<p>copy plugin/emmet.vim to plugin directory. and copy autoload/emmet.vim to autoload directory.</p>
<pre class="code">
# cp -r plugin ~/.vim/.
# cp -r autoload ~/.vim/.
</pre>
<p>if you install <a href="http://www.vim.org/scripts/script.php?script_id=2332">pathogen.vim</a>, you can make it work with only copying emmet-vim directory to bundle directory.</p>
<pre class="code">
# cp -r emmet-vim ~/.vim/bundle/.
</pre>
</article>
</div>
<br />
<div class="blocked-content">
<article id="howworkthis">
<h2 class="maintitle">How This Work</h2>
<p>below is a movie when using emmet.vim</p>
<script type="text/javascript" src="https://asciinema.org/a/4568.js" id="asciicast-4568" async></script>
</div>
<!--
<embed type="application/x-shockwave-flash" src="http://ttyshare.com/t/a474271fe4eea14f6302286d2bfabd968fb40868" width="480" height="288"/>
<embed type="application/x-shockwave-flash" src="http://ttyshare.com/t/8e83a40b6e5d6590b2832fc406114dbe348fc96f" width="480" height="288"/>
-->
</article>
</div>
<br />
<div class="blocked-content">
<article id="repo">
<h2 class="maintitle">Repository</h2>
<p>
<a href="http://github.com/mattn/emmet-vim/">http://github.com/mattn/emmet-vim/</a>
</p>
</article>
</div>
<br />
<div class="blocked-content">
<article id="license">
<h2 class="maintitle">License</h2>
<p>BSD style license.</p>
</article>
</div>
<br />
<div class="blocked-content">
<article id="author">
<h2 class="maintitle">Author</h2>
<p>Project authors:</p>
<div>
<ul>
<li><a href="http://mattn.kaoriya.net/" rel="me">Yasuhiro Matsumoto</a></li>
</ul>
</div>
</article>
</div>
<br />
</section>
</body>

192
plugin/emmet.vim Normal file
View File

@@ -0,0 +1,192 @@
"=============================================================================
" File: emmet.vim
" Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
" Last Change: 26-Jul-2015.
" Version: 0.86
" WebPage: http://github.com/mattn/emmet-vim
" Description: vim plugins for HTML and CSS hi-speed coding.
" SeeAlso: http://emmet.io/
" Usage:
"
" This is vim script support expanding abbreviation like emmet.
" ref: http://emmet.io/
"
" Type abbreviation
" +-------------------------------------
" | html:5_
" +-------------------------------------
" "_" is a cursor position. and type "<c-y>," (Ctrl+y and Comma)
" NOTE: Don't worry about key map. you can change it easily.
" +-------------------------------------
" | <!DOCTYPE HTML>
" | <html lang="en">
" | <head>
" | <title></title>
" | <meta charset="UTF-8">
" | <meta name="viewport" content="width=device-width, initial-scale=1.0">
" | </head>
" | <body>
" | _
" | </body>
" | </html>
" +-------------------------------------
" Type following
" +-------------------------------------
" | div#foo$*2>div.bar
" +-------------------------------------
" And type "<c-y>,"
" +-------------------------------------
" |<div id="foo1">
" | <div class="bar">_</div>
" |</div>
" |<div id="foo2">
" | <div class="bar"></div>
" |</div>
" +-------------------------------------
"
" Tips:
"
" You can customize behavior of expanding with overriding config.
" This configuration will be merged at loading plugin.
"
" let g:user_emmet_settings = {
" \ 'indentation' : ' ',
" \ 'perl' : {
" \ 'aliases' : {
" \ 'req' : 'require '
" \ },
" \ 'snippets' : {
" \ 'use' : "use strict\nuse warnings\n\n",
" \ 'warn' : "warn \"|\";",
" \ }
" \ }
" \}
"
" You can set language attribute in html using 'emmet_settings.lang'.
"
" GetLatestVimScripts: 2981 1 :AutoInstall: emmet.vim
" script type: plugin
if &compatible || v:version < 702 || (exists('g:loaded_emmet_vim') && g:loaded_emmet_vim)
finish
endif
let g:loaded_emmet_vim = 1
let s:save_cpo = &cpoptions
set cpoptions&vim
if !exists('g:emmet_html5')
let g:emmet_html5 = 1
endif
if !exists('g:emmet_docroot')
let g:emmet_docroot = {}
endif
if !exists('g:emmet_debug')
let g:emmet_debug = 0
endif
if !exists('g:emmet_curl_command')
let g:emmet_curl_command = 'curl -s -L -A Mozilla/5.0'
endif
if !exists('g:user_emmet_leader_key')
let g:user_emmet_leader_key = '<c-y>'
endif
function! s:install_plugin(mode, buffer)
let buffer = a:buffer ? '<buffer>' : ''
let items = [
\ {'mode': 'i', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmet-expand-abbr', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#expandAbbr(0,"")<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmet-expand-abbr', 'func': ':call emmet#expandAbbr(3,"")<cr>'},
\ {'mode': 'v', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmet-expand-abbr', 'func': ':call emmet#expandAbbr(2,"")<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_expandword_key', 'key': ';', 'plug': 'emmet-expand-word', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#expandAbbr(1,"")<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_expandword_key', 'key': ';', 'plug': 'emmet-expand-word', 'func': ':call emmet#expandAbbr(1,"")<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_update_tag', 'key': 'u', 'plug': 'emmet-update-tag', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#updateTag()<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_update_tag', 'key': 'u', 'plug': 'emmet-update-tag', 'func': ':call emmet#updateTag()<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_balancetaginward_key', 'key': 'd', 'plug': 'emmet-balance-tag-inward', 'func': '<esc>:call emmet#balanceTag(1)<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_balancetaginward_key', 'key': 'd', 'plug': 'emmet-balance-tag-inward', 'func': ':call emmet#balanceTag(1)<cr>'},
\ {'mode': 'v', 'var': 'user_emmet_balancetaginward_key', 'key': 'd', 'plug': 'emmet-balance-tag-inward', 'func': '<esc>:call emmet#balanceTag(1)<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_balancetagoutward_key', 'key': 'D', 'plug': 'emmet-balance-tag-outword', 'func': '<esc>:call emmet#balanceTag(-1)<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_balancetagoutward_key', 'key': 'D', 'plug': 'emmet-balance-tag-outword', 'func': ':call emmet#balanceTag(-1)<cr>'},
\ {'mode': 'v', 'var': 'user_emmet_balancetagoutward_key', 'key': 'D', 'plug': 'emmet-balance-tag-outword', 'func': '<esc>:call emmet#balanceTag(-1)<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_next_key', 'key': 'n', 'plug': 'emmet-move-next', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#moveNextPrev(0)<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_next_key', 'key': 'n', 'plug': 'emmet-move-next', 'func': ':call emmet#moveNextPrev(0)<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_prev_key', 'key': 'N', 'plug': 'emmet-move-prev', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#moveNextPrev(1)<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_prev_key', 'key': 'N', 'plug': 'emmet-move-prev', 'func': ':call emmet#moveNextPrev(1)<cr>'},
\ {'mode': 'i', 'var': '', 'key': '', 'plug': 'emmet-move-next-item', 'func': '<esc>:call emmet#moveNextPrevItem(0)<cr>'},
\ {'mode': 'n', 'var': '', 'key': '', 'plug': 'emmet-move-next-item', 'func': ':call emmet#moveNextPrevItem(0)<cr>'},
\ {'mode': 'i', 'var': '', 'key': '', 'plug': 'emmet-move-prev-item', 'func': '<esc>:call emmet#moveNextPrevItem(1)<cr>'},
\ {'mode': 'n', 'var': '', 'key': '', 'plug': 'emmet-move-prev-item', 'func': ':call emmet#moveNextPrevItem(1)<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_imagesize_key', 'key': 'i', 'plug': 'emmet-image-size', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#imageSize()<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_imagesize_key', 'key': 'i', 'plug': 'emmet-image-size', 'func': ':call emmet#imageSize()<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_imageencode_key', 'key': 'I', 'plug': 'emmet-image-encode', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#imageEncode()<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_imageencode_key', 'key': 'I', 'plug': 'emmet-image-encode', 'func': ':call emmet#imageEncode()<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_togglecomment_key', 'key': '/', 'plug': 'emmet-toggle-comment', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#toggleComment()<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_togglecomment_key', 'key': '/', 'plug': 'emmet-toggle-comment', 'func': ':call emmet#toggleComment()<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_splitjointag_key', 'key': 'j', 'plug': 'emmet-split-join-tag', 'func': '<esc>:call emmet#splitJoinTag()<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_splitjointag_key', 'key': 'j', 'plug': 'emmet-split-join-tag', 'func': ':call emmet#splitJoinTag()<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_removetag_key', 'key': 'k', 'plug': 'emmet-remove-tag', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#removeTag()<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_removetag_key', 'key': 'k', 'plug': 'emmet-remove-tag', 'func': ':call emmet#removeTag()<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_anchorizeurl_key', 'key': 'a', 'plug': 'emmet-anchorize-url', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#anchorizeURL(0)<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_anchorizeurl_key', 'key': 'a', 'plug': 'emmet-anchorize-url', 'func': ':call emmet#anchorizeURL(0)<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_anchorizesummary_key', 'key': 'A', 'plug': 'emmet-anchorize-summary', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#anchorizeURL(1)<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_anchorizesummary_key', 'key': 'A', 'plug': 'emmet-anchorize-summary', 'func': ':call emmet#anchorizeURL(1)<cr>'},
\ {'mode': 'i', 'var': 'user_emmet_mergelines_key', 'key': 'm', 'plug': 'emmet-merge-lines', 'func': '<c-r>=emmet#util#closePopup()<cr><c-r>=emmet#mergeLines()<cr>'},
\ {'mode': 'n', 'var': 'user_emmet_mergelines_key', 'key': 'm', 'plug': 'emmet-merge-lines', 'func': ':call emmet#mergeLines()<cr>'},
\ {'mode': 'v', 'var': 'user_emmet_codepretty_key', 'key': 'c', 'plug': 'emmet-code-pretty', 'func': ':call emmet#codePretty()<cr>'},
\]
let only_plug = get(g:, 'emmet_install_only_plug', 0)
for item in items
if a:mode !=# 'a' && stridx(a:mode, item.mode) == -1
continue
endif
exe item.mode . 'noremap '. buffer .' <plug>(' . item.plug . ') ' . item.func
if item.var != '' && !only_plug
if exists('g:' . item.var)
let key = eval('g:' . item.var)
else
let key = g:user_emmet_leader_key . item.key
endif
if !hasmapto('<plug>(' . item.plug . ')', item.mode) && !len(maparg(key, item.mode))
exe item.mode . 'map ' . buffer . ' <unique> <silent>' . key . ' <plug>(' . item.plug . ')'
endif
endif
endfor
if exists('g:user_emmet_complete_tag') && g:user_emmet_complete_tag
if get(g:, 'user_emmet_install_global', 1)
set omnifunc=emmet#completeTag
else
setlocal omnifunc=emmet#completeTag
endif
endif
endfunction
command! -nargs=0 -bar EmmetInstall call <SID>install_plugin(get(g:, 'user_emmet_mode', 'a'), 1)
if get(g:, 'user_emmet_install_global', 1)
call s:install_plugin(get(g:, 'user_emmet_mode', 'a'), 0)
endif
if get(g:, 'user_emmet_install_command', 1)
command! -nargs=1 Emmet call emmet#expandAbbr(4, <q-args>)
endif
function! s:setup_styledEmmetAbbreviation() abort
if index(['javascript', 'javascriptreact', 'typescript', 'typescriptreact'], &filetype) != -1
syntax match styledEmmetAbbreviation "[a-z0-9#+!%]\+" containedin=styledDefinition contained
endif
endfunction
augroup ___emmet_setup___
au!
autocmd Syntax * call s:setup_styledEmmetAbbreviation()
augroup END
let &cpoptions = s:save_cpo
unlet s:save_cpo
" vim:set et:

View File

@@ -1,99 +0,0 @@
@charset "utf-8"
section, article, aside, hgroup, header, footer, nav, figure { display: block; }
body {
font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Meiryo, "メイリオ", " Pゴシック", Verdana, Geneva, Arial, Helvetica;
text-align: center;
}
section {
clear:both;
text-align: left;
}
article {
}
img {
border: none;
}
#content {
}
h1 {
font-family: 'Verdana', 'Arial';
padding: 0.5em; margin-top: 0; margin-bottom: 0;
}
.subtitle {
background: transparent url(../images/allow-right-orange.png) no-repeat scroll 0%;
padding-left: 26px;
line-height: 26px;
text-decoration: underline;
}
.maintitle {
background: transparent url(../images/allow-right-green.png) no-repeat scroll 0%;
padding-left: 26px;
line-height: 26px;
text-decoration: underline;
}
.blocked-content {
padding: 1em;
border: 1px dotted gray;
font-family: 'Verdana', 'Arial';
}
a{
color: #006699;
text-decoration: none;
}
a:link {
color: #006699;
text-decoration: none;
}
a:visited {
color: #006699;
text-decoration: none;
}
a:hover {
color: #006699;
text-decoration: underline;
}
li a, h3 a {
padding-left:5px;
padding-right:5px;
background-color:none;
text-decoration:none;
color: #333333;
text-shadow:1px 1px 1px #ffffff;
line-height: 25px;
}
li a:hover, li a:active, h3 a:hover, li a:active {
background-color:#334d55;
text-decoration:none;
color:#ffffff;
text-shadow:1px 1px 1px #000000;
}
pre.code {
padding: 1em;
border: 1px dotted gray;
font-family: 'Verdana', 'Arial';
color: white;
background: gray;
width: 500px;
}
#tty {
font-family: monospace;
font-size: 10pt;
line-height: 0px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 673 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

File diff suppressed because it is too large Load Diff

1130
unittest.vim Normal file

File diff suppressed because it is too large Load Diff