Commit 04a6adfc authored by Timothy Gu's avatar Timothy Gu Committed by Commit Bot

[vim-torque] Add a Torque vim syntax highlighter

The vim counterpart to the existing Visual Studio Code extension.

Change-Id: I7ee59e212a31e81034362eb406f3ffdbb2447acb
Reviewed-on: https://chromium-review.googlesource.com/1180705
Commit-Queue: Timothy Gu <timothygu@chromium.org>
Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55231}
parent a7b368ee
# V8 Torque syntax support for vim
This plugin adds syntax highlighting support for the V8 Torque domain-specific
language.
## Installation
Installation depends on your favorite plugin manager.
**Pathogen:**
Run
```sh
ln -s $V8/tools/torque/vim-torque ~/.vim/bundle/vim-torque
# or ~/.config/nvim/bundle/vim-torque for Neovim
```
**Vundle:**
Add this line to your `.vimrc` or `~/.config/nvim/init.vim`.
```vim
Plugin 'file:///path/to/v8/tools/torque/vim-torque'
```
**vim-plug:**
Add this line to your `.vimrc` or `~/.config/nvim/init.vim`.
```vim
Plug '~/path/to/v8/tools/torque/vim-torque'
```
au BufRead,BufNewFile *.tq set filetype=torque
" Copyright 2018 the V8 project authors. All rights reserved.
" Use of this source code is governed by a BSD-style license that can be
" found in the LICENSE file.
if !exists("main_syntax")
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
let main_syntax = 'torque'
elseif exists("b:current_syntax") && b:current_syntax == "torque"
finish
endif
let s:cpo_save = &cpo
set cpo&vim
syn match torqueLineComment "\/\/.*" contains=@Spell
syn region torqueComment start="/\*" end="\*/" contains=@Spell
syn region torqueStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+
syn keyword torqueAssert assert check debug unreachable
syn keyword torqueAtom True False Undefined Hole Null
syn keyword torqueBoolean true false
syn keyword torqueBranch break continue goto
syn keyword torqueConditional if else typeswitch otherwise
syn match torqueConstant /\v<[A-Z][A-Z0-9_]+>/
syn match torqueConstant /\v<k[A-Z][A-Za-z0-9]*>/
syn keyword torqueFunction macro builtin runtime
syn keyword torqueKeyword cast convert from_constexpr min max unsafe_cast
syn keyword torqueLabel case
syn keyword torqueMatching try label
syn keyword torqueModifier extern javascript constexpr
syn match torqueNumber /\v<[0-9]+(\.[0-9]*)?>/
syn match torqueNumber /\v<0x[0-9a-fA-F]+>/
syn keyword torqueOperator operator
syn keyword torqueRel extends generates labels
syn keyword torqueRepeat while for of
syn keyword torqueStatement return tail
syn keyword torqueStructure module struct type
syn keyword torqueVariable const let
syn match torqueType /\v(\<)@<=([A-Za-z][0-9A-Za-z_]*)(>)@=/
syn match torqueType /\v(:\s*(constexpr\s*)?)@<=([A-Za-z][0-9A-Za-z_]*)/
" Include some common types also
syn keyword torqueType Arguments void never
syn keyword torqueType Tagged Smi HeapObject Object
syn keyword torqueType int32 uint32 int64 intptr uintptr float32 float64
syn keyword torqueType bool string
syn keyword torqueType int31 RawPtr AbstractCode Code JSReceiver Context String
syn keyword torqueType Oddball HeapNumber Number BigInt Numeric Boolean JSProxy
syn keyword torqueType JSObject JSArray JSFunction JSBoundFunction Callable Map
hi def link torqueAssert Statement
hi def link torqueAtom Constant
hi def link torqueBoolean Boolean
hi def link torqueBranch Conditional
hi def link torqueComment Comment
hi def link torqueConditional Conditional
hi def link torqueConstant Constant
hi def link torqueFunction Function
hi def link torqueKeyword Keyword
hi def link torqueLabel Label
hi def link torqueLineComment Comment
hi def link torqueMatching Exception
hi def link torqueModifier StorageClass
hi def link torqueNumber Number
hi def link torqueOperator Operator
hi def link torqueRel StorageClass
hi def link torqueRepeat Repeat
hi def link torqueStatement Statement
hi def link torqueStringS String
hi def link torqueStructure Structure
hi def link torqueType Type
hi def link torqueVariable Identifier
let b:current_syntax = "torque"
if main_syntax == 'torque'
unlet main_syntax
endif
let &cpo = s:cpo_save
unlet s:cpo_save
" vim: set ts=8:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment