Added vim syntax highlighting to provisioning script (#63)
* fixed provision bug, added vim syntax * reverted my 'bug fix'
This commit is contained in:
parent
3f8abb5368
commit
f827e874fb
1
P4D2_2017_Fall/vm/Vagrantfile
vendored
1
P4D2_2017_Fall/vm/Vagrantfile
vendored
@ -12,6 +12,7 @@ Vagrant.configure(2) do |config|
|
|||||||
config.vm.hostname = "p4"
|
config.vm.hostname = "p4"
|
||||||
config.vm.provision "file", source: "p4-logo.png", destination: "/home/vagrant/p4-logo.png"
|
config.vm.provision "file", source: "p4-logo.png", destination: "/home/vagrant/p4-logo.png"
|
||||||
config.vm.provision "file", source: "p4_16-mode.el", destination: "/home/vagrant/p4_16-mode.el"
|
config.vm.provision "file", source: "p4_16-mode.el", destination: "/home/vagrant/p4_16-mode.el"
|
||||||
|
config.vm.provision "file", source: "p4.vim", destination: "/home/vagrant/p4.vim"
|
||||||
config.vm.provision "shell", path: "root-bootstrap.sh"
|
config.vm.provision "shell", path: "root-bootstrap.sh"
|
||||||
config.vm.provision "shell", privileged: false, path: "user-bootstrap.sh"
|
config.vm.provision "shell", privileged: false, path: "user-bootstrap.sh"
|
||||||
end
|
end
|
||||||
|
133
P4D2_2017_Fall/vm/p4.vim
Normal file
133
P4D2_2017_Fall/vm/p4.vim
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: P4_16
|
||||||
|
" Maintainer: Antonin Bas, Barefoot Networks Inc
|
||||||
|
" Latest Revision: 5 August 2014
|
||||||
|
" Updated By: Gyanesh Patra, Unicamp University
|
||||||
|
" Latest Revision: 12 April 2016
|
||||||
|
" Updated Again By: Robert MacDavid, Princeton University
|
||||||
|
" Latest Revision: 12 June 2017
|
||||||
|
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Use case sensitive matching of keywords
|
||||||
|
syn case match
|
||||||
|
|
||||||
|
syn keyword p4ObjectKeyword action apply control default
|
||||||
|
syn keyword p4ObjectKeyword enum extern exit
|
||||||
|
syn keyword p4ObjectKeyword header header_union
|
||||||
|
syn keyword p4ObjectKeyword match_kind
|
||||||
|
syn keyword p4ObjectKeyword package parser
|
||||||
|
syn keyword p4ObjectKeyword state struct switch size
|
||||||
|
syn keyword p4ObjectKeyword table transition tuple typedef
|
||||||
|
syn keyword p4ObjectKeyword verify
|
||||||
|
|
||||||
|
" Tables
|
||||||
|
syn keyword p4ObjectAttributeKeyword key actions default_action entries
|
||||||
|
syn keyword p4ObjectAttributeKeyword implementation
|
||||||
|
" Counters and meters
|
||||||
|
syn keyword p4ObjectAttributeKeyword counters meters
|
||||||
|
" Var Attributes
|
||||||
|
syn keyword p4ObjectKeyword const in out inout
|
||||||
|
|
||||||
|
|
||||||
|
syn keyword p4Annotation @name @tableonly @defaultonly
|
||||||
|
syn keyword p4Annotation @globalname @atomic @hidden
|
||||||
|
|
||||||
|
|
||||||
|
syn keyword p4MatchTypeKeyword exact ternary lpm range
|
||||||
|
|
||||||
|
syn keyword p4TODO contained FIXME TODO
|
||||||
|
syn match p4Comment '\/\/.*' contains=p4TODO
|
||||||
|
syn region p4BlockComment start='\/\*' end='\*\/' contains=p4TODO keepend
|
||||||
|
|
||||||
|
syn match p4Preprocessor '#(include|define|undef|if|ifdef) .*$'
|
||||||
|
syn match p4Preprocessor '#(if|ifdef|ifndef|elif|else) .*$'
|
||||||
|
syn match p4Preprocessor '#(endif|defined|line|file) .*$'
|
||||||
|
syn match p4Preprocessor '#(error|warning) .*$'
|
||||||
|
|
||||||
|
syn keyword p4Type bit bool int varbit void error
|
||||||
|
|
||||||
|
" Integer Literals
|
||||||
|
|
||||||
|
syn match p4Int '[0-9][0-9_]*'
|
||||||
|
syn match p4Indentifier '[A-Za-z_][A-Za-z0-9_]*'
|
||||||
|
syn match p4HexadecimalInt '0[Xx][0-9a-fA-F]\+'
|
||||||
|
syn match p4DecimalInt '0[dD][0-9_]\+'
|
||||||
|
syn match p4OctalInt '0[oO][0-7_]\+'
|
||||||
|
syn match p4BinaryInt '0[bB][01_]\+'
|
||||||
|
|
||||||
|
|
||||||
|
syn region p4SizedType start='(bit|int|varbit)\<' end='\>'
|
||||||
|
syn match p4UserType '[A-Za-z_][A-Za-z0-9_]*[_][t]\W'
|
||||||
|
syn keyword p4Operators and or not &&& mask
|
||||||
|
|
||||||
|
|
||||||
|
" Header Methods
|
||||||
|
syn keyword p4Primitive isValid setValid setInvalid
|
||||||
|
" Table Methods
|
||||||
|
syn keyword p4Primitive hit action_run
|
||||||
|
" Packet_in methods
|
||||||
|
syn keyword p4Primitive extract lookahead advance length
|
||||||
|
" Packet_out methods
|
||||||
|
syn keyword p4Primitive emit
|
||||||
|
" Known parser states
|
||||||
|
syn keyword p4Primitive accept reject
|
||||||
|
" Misc
|
||||||
|
syn keyword p4Primitive NoAction
|
||||||
|
|
||||||
|
|
||||||
|
syn keyword p4Conditional if else select
|
||||||
|
syn keyword p4Statement return
|
||||||
|
|
||||||
|
" Don't Care
|
||||||
|
syn keyword p4Constant _
|
||||||
|
" Error
|
||||||
|
syn keyword p4Constant NoError PacketTooShort NoMatch StackOutOfBounds
|
||||||
|
syn keyword p4Constant OverwritingHeader HeaderTooShort ParserTiimeout
|
||||||
|
" Boolean
|
||||||
|
syn keyword p4Boolean false true
|
||||||
|
|
||||||
|
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
||||||
|
" Apply highlight groups to syntax groups defined above
|
||||||
|
" For version 5.7 and earlier: only when not done already
|
||||||
|
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||||
|
if version >= 508 || !exists("did_p4_syntax_inits")
|
||||||
|
if version <= 508
|
||||||
|
let did_p4_syntax_inits = 1
|
||||||
|
command -nargs=+ HiLink hi link <args>
|
||||||
|
else
|
||||||
|
command -nargs=+ HiLink hi def link <args>
|
||||||
|
endif
|
||||||
|
|
||||||
|
HiLink p4ObjectKeyword Repeat
|
||||||
|
HiLink p4UserType Type
|
||||||
|
HiLink p4ObjectAttributeKeyword Keyword
|
||||||
|
HiLink p4TypeAttribute StorageClass
|
||||||
|
HiLink p4Annotation Special
|
||||||
|
HiLink p4MatchTypeKeyword Keyword
|
||||||
|
HiLink p4TODO Todo
|
||||||
|
HiLink p4Comment Comment
|
||||||
|
HiLink p4BlockComment Comment
|
||||||
|
HiLink p4Preprocessor PreProc
|
||||||
|
HiLink p4SizedType Type
|
||||||
|
HiLink p4Type Type
|
||||||
|
HiLink p4DecimalInt Number
|
||||||
|
HiLink p4HexadecimalInt Number
|
||||||
|
HiLink p4OctalInt Number
|
||||||
|
HiLink p4BinaryInt Number
|
||||||
|
HiLink p4Int Number
|
||||||
|
HiLink p4Operators Operator
|
||||||
|
HiLink p4Primitive Function
|
||||||
|
HiLink p4Conditional Conditional
|
||||||
|
HiLink p4Statement Statement
|
||||||
|
HiLink p4Constant Constant
|
||||||
|
HiLink p4Boolean Boolean
|
||||||
|
|
||||||
|
delcommand HiLink
|
||||||
|
endif
|
||||||
|
|
||||||
|
let b:current_syntax = "p4"
|
@ -37,8 +37,6 @@ cd ..
|
|||||||
# Tutorials
|
# Tutorials
|
||||||
pip install crcmod
|
pip install crcmod
|
||||||
git clone https://github.com/p4lang/tutorials
|
git clone https://github.com/p4lang/tutorials
|
||||||
cd tutorials
|
|
||||||
cd ..
|
|
||||||
sudo mv tutorials /home/p4
|
sudo mv tutorials /home/p4
|
||||||
sudo chown -R p4:p4 /home/p4/tutorials
|
sudo chown -R p4:p4 /home/p4/tutorials
|
||||||
|
|
||||||
@ -47,3 +45,15 @@ sudo cp p4_16-mode.el /usr/share/emacs/site-lisp/
|
|||||||
echo "(add-to-list 'auto-mode-alist '(\"\\.p4\\'\" . p4_16-mode))" | sudo tee /home/p4/.emacs
|
echo "(add-to-list 'auto-mode-alist '(\"\\.p4\\'\" . p4_16-mode))" | sudo tee /home/p4/.emacs
|
||||||
sudo chown p4:p4 /home/p4/.emacs
|
sudo chown p4:p4 /home/p4/.emacs
|
||||||
|
|
||||||
|
# Vim
|
||||||
|
cd /home/vagrant
|
||||||
|
mkdir .vim
|
||||||
|
cd .vim
|
||||||
|
mkdir ftdetect
|
||||||
|
mkdir syntax
|
||||||
|
echo "au BufRead,BufNewFile *.p4 set filetype=p4" >> ftdetect/p4.vim
|
||||||
|
cp /home/vagrant/p4.vim syntax/p4.vim
|
||||||
|
cd /home/vagrant
|
||||||
|
sudo mv .vim /home/p4/.vim
|
||||||
|
sudo chown -R p4:p4 /home/p4/.vim
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user