Hi Bram,

I wrote a syntax/filetype plugin for Tera Term Language (TTL) which is
a macro language for Tera Term (http://ttssh2.osdn.jp/index.html.en).
Can you include this?

The plugin is also available at https://github.com/k-takata/vim-teraterm .

Regards,
Ken Takata

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.
# HG changeset patch
# Parent  e53da2291a06f45c5388c4c1161b2503848bf7dc

diff --git a/runtime/filetype.vim b/runtime/filetype.vim
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -2169,6 +2169,9 @@ au BufNewFile,BufRead *.tli			setf tli
 " Telix Salt
 au BufNewFile,BufRead *.slt			setf tsalt
 
+" Tera Term Language
+au BufRead,BufNewFile *.ttl			setf teraterm
+
 " Terminfo
 au BufNewFile,BufRead *.ti			setf terminfo
 
diff --git a/runtime/indent/teraterm.vim b/runtime/indent/teraterm.vim
new file mode 100644
--- /dev/null
+++ b/runtime/indent/teraterm.vim
@@ -0,0 +1,67 @@
+" Vim indent file
+" Language:	Tera Term Language (TTL)
+"		Based on Tera Term Version 4.86
+" Maintainer:	Ken Takata
+" URL:		https://github.com/k-takata/vim-teraterm
+" Last Change:	2015 Jun 4
+" Filenames:	*.ttl
+" License:	VIM License
+
+if exists("b:did_indent")
+  finish
+endif
+let b:did_indent = 1
+
+setlocal nosmartindent
+setlocal noautoindent
+setlocal indentexpr=GetTeraTermIndent(v:lnum)
+setlocal indentkeys=!^F,o,O,e
+setlocal indentkeys+==elseif,=endif,=loop,=next,=enduntil,=endwhile
+
+if exists("*GetTeraTermIndent")
+  finish
+endif
+
+" The shiftwidth() function is relatively new.
+" Don't require it to exist.
+if exists('*shiftwidth')
+  function s:sw() abort
+    return shiftwidth()
+  endfunction
+else
+  function s:sw() abort
+    return &shiftwidth
+  endfunction
+endif
+
+function! GetTeraTermIndent(lnum)
+  let l:prevlnum = prevnonblank(a:lnum-1)
+  if l:prevlnum == 0
+    " top of file
+    return 0
+  endif
+
+  " grab the previous and current line, stripping comments.
+  let l:prevl = substitute(getline(l:prevlnum), ';.*$', '', '')
+  let l:thisl = substitute(getline(a:lnum), ';.*$', '', '')
+  let l:previ = indent(l:prevlnum)
+
+  let l:ind = l:previ
+
+  if l:prevl =~ '^\s*if\>.*\<then\s*$'
+    " previous line opened a block
+    let l:ind += s:sw()
+  endif
+  if l:prevl =~ '^\s*\%(elseif\|else\|do\|until\|while\|for\)\>'
+    " previous line opened a block
+    let l:ind += s:sw()
+  endif
+  if l:thisl =~ '^\s*\%(elseif\|else\|endif\|enduntil\|endwhile\|loop\|next\)\>'
+    " this line closed a block
+    let l:ind -= s:sw()
+  endif
+
+  return l:ind
+endfunction
+
+" vim: ts=8 sw=2 sts=2
diff --git a/runtime/syntax/teraterm.vim b/runtime/syntax/teraterm.vim
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/teraterm.vim
@@ -0,0 +1,139 @@
+" Vim syntax file
+" Language:	Tera Term Language (TTL)
+"		Based on Tera Term Version 4.86
+" Maintainer:	Ken Takata
+" URL:		https://github.com/k-takata/vim-teraterm
+" Last Change:	2015 Jun 24
+" Filenames:	*.ttl
+" License:	VIM License
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:save_cpo = &cpo
+set cpo&vim
+
+syn case ignore
+
+syn region ttlComment	start=";" end="$" contains=@Spell
+syn region ttlComment	start="/\*" end="\*/" contains=@Spell
+syn region ttlFirstComment	start="/\*" end="\*/" contained contains=@Spell
+			\ nextgroup=ttlStatement,ttlFirstComment
+
+syn match ttlCharacter	"#\%(\d\+\|\$\x\+\)\>"
+syn match ttlNumber	"\%(\<\d\+\|\$\x\+\)\>"
+syn match ttlString	"'[^']*'" contains=@Spell
+syn match ttlString	'"[^"]*"' contains=@Spell
+syn cluster ttlConstant contains=ttlCharacter,ttlNumber,ttlString
+
+syn match ttlLabel	":\s*\w\{1,32}\>"
+
+syn keyword ttlOperator	and or xor not
+
+syn match ttlVar	"\<groupmatchstr\d\>"
+syn match ttlVar	"\<param\d\>"
+syn keyword ttlVar	inputstr matchstr paramcnt result timeout mtimeout
+
+
+syn match ttlLine nextgroup=ttlStatement "^"
+syn match ttlStatement contained "\s*"
+			\ nextgroup=ttlIf,ttlElseIf,ttlConditional,ttlRepeat,
+			\ ttlFirstComment,ttlComment,ttlLabel,@ttlCommand
+
+syn cluster ttlCommand contains=ttlControlCommand,ttlCommunicationCommand,
+			\ ttlStringCommand,ttlFileCommand,ttlPasswordCommand,
+			\ ttlMiscCommand
+
+
+syn keyword ttlIf contained nextgroup=ttlIfExpression if
+syn keyword ttlElseIf contained nextgroup=ttlElseIfExpression elseif
+
+syn match ttlIfExpression contained "\s.*"
+		\ contains=@ttlConstant,ttlVar,ttlOperator,ttlComment,ttlThen,
+		\ @ttlCommand
+syn match ttlElseIfExpression contained "\s.*"
+		\ contains=@ttlConstant,ttlVar,ttlOperator,ttlComment,ttlThen
+
+syn keyword ttlThen contained then
+syn keyword ttlConditional contained else endif
+
+syn keyword ttlRepeat contained for next until enduntil while endwhile
+syn match ttlRepeat contained
+			\ "\<\%(do\|loop\)\%(\s\+\%(while\|until\)\)\?\>"
+syn keyword ttlControlCommand contained
+			\ break call continue end execcmnd exit goto include
+			\ mpause pause return
+
+
+syn keyword ttlCommunicationCommand contained
+			\ bplusrecv bplussend callmenu changedir clearscreen
+			\ closett connect cygconnect disconnect dispstr
+			\ enablekeyb flushrecv gethostname getmodemstatus
+			\ gettitle kmtfinish kmtget kmtrecv kmtsend loadkeymap
+			\ logautoclosemode logclose loginfo logopen logpause
+			\ logrotate logstart logwrite quickvanrecv
+			\ quickvansend recvln restoresetup scprecv scpsend
+			\ send sendbreak sendbroadcast sendfile sendkcode
+			\ sendln sendlnbroadcast sendmulticast setbaud
+			\ setdebug setdtr setecho setmulticastname setrts
+			\ setsync settitle showtt testlink unlink wait
+			\ wait4all waitevent waitln waitn waitrecv waitregex
+			\ xmodemrecv xmodemsend ymodemrecv ymodemsend
+			\ zmodemrecv zmodemsend
+syn keyword ttlStringCommand contained
+			\ code2str expandenv int2str regexoption sprintf
+			\ sprintf2 str2code str2int strcompare strconcat
+			\ strcopy strinsert strjoin strlen strmatch strremove
+			\ strreplace strscan strspecial strsplit strtrim
+			\ tolower toupper
+syn keyword ttlFileCommand contained
+			\ basename dirname fileclose fileconcat filecopy
+			\ filecreate filedelete filelock filemarkptr fileopen
+			\ filereadln fileread filerename filesearch fileseek
+			\ fileseekback filestat filestrseek filestrseek2
+			\ filetruncate fileunlock filewrite filewriteln
+			\ findfirst findnext findclose foldercreate
+			\ folderdelete foldersearch getdir getfileattr makepath
+			\ setdir setfileattr
+syn keyword ttlPasswordCommand contained
+			\ delpassword getpassword ispassword passwordbox
+			\ setpassword
+syn keyword ttlMiscCommand contained
+			\ beep bringupbox checksum8 checksum8file checksum16
+			\ checksum16file checksum32 checksum32file closesbox
+			\ clipb2var crc16 crc16file crc32 crc32file exec
+			\ dirnamebox filenamebox getdate getenv getipv4addr
+			\ getipv6addr getspecialfolder gettime getttdir getver
+			\ ifdefined inputbox intdim listbox messagebox random
+			\ rotateleft rotateright setdate setdlgpos setenv
+			\ setexitcode settime show statusbox strdim uptime
+			\ var2clipb yesnobox
+
+
+hi def link ttlCharacter Character
+hi def link ttlNumber Number
+hi def link ttlComment Comment
+hi def link ttlFirstComment Comment
+hi def link ttlString String
+hi def link ttlLabel Label
+hi def link ttlIf Conditional
+hi def link ttlElseIf Conditional
+hi def link ttlThen Conditional
+hi def link ttlConditional Conditional
+hi def link ttlRepeat Repeat
+hi def link ttlControlCommand Keyword
+hi def link ttlVar Identifier
+hi def link ttlOperator Operator
+hi def link ttlCommunicationCommand Keyword
+hi def link ttlStringCommand Keyword
+hi def link ttlFileCommand Keyword
+hi def link ttlPasswordCommand Keyword
+hi def link ttlMiscCommand Keyword
+
+let b:current_syntax = "teraterm"
+
+let &cpo = s:save_cpo
+unlet s:save_cpo
+
+" vim: ts=8 sw=2 sts=2

Raspunde prin e-mail lui