mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			75 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language: Thrift | ||
|  | " Original Author: Martin Smith <martin@facebook.com> | ||
|  | " Maintainer: Yinzuo Jiang <jiangyinzuo@foxmail.com> | ||
|  | " Last Change: 2024/07/29 | ||
|  | " https://github.com/apache/thrift/blob/master/contrib/thrift.vim | ||
|  | " | ||
|  | " Licensed to the Apache Software Foundation (ASF) under one | ||
|  | " or more contributor license agreements. See the NOTICE file | ||
|  | " distributed with this work for additional information | ||
|  | " regarding copyright ownership. The ASF licenses this file | ||
|  | " to you under the Apache License, Version 2.0 (the | ||
|  | " "License"); you may not use this file except in compliance | ||
|  | " with the License. You may obtain a copy of the License at | ||
|  | " | ||
|  | "   http://www.apache.org/licenses/LICENSE-2.0 | ||
|  | " | ||
|  | " Unless required by applicable law or agreed to in writing, | ||
|  | " software distributed under the License is distributed on an | ||
|  | " "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
|  | " KIND, either express or implied. See the License for the | ||
|  | " specific language governing permissions and limitations | ||
|  | " under the License. | ||
|  | " | ||
|  | 
 | ||
|  | if exists("b:current_syntax") | ||
|  |   finish | ||
|  | endif | ||
|  | 
 | ||
|  | " Todo | ||
|  | syn keyword thriftTodo TODO todo FIXME fixme XXX xxx contained | ||
|  | 
 | ||
|  | " Comments | ||
|  | syn match thriftComment "#.*" contains=thriftTodo | ||
|  | syn region thriftComment start="/\*" end="\*/" contains=thriftTodo | ||
|  | syn match thriftComment "//.\{-}\(?>\|$\)\@=" | ||
|  | 
 | ||
|  | " String | ||
|  | syn region thriftStringDouble matchgroup=None start=+"+  end=+"+ | ||
|  | 
 | ||
|  | " Number | ||
|  | syn match thriftNumber "-\=\<\d\+\>" contained | ||
|  | 
 | ||
|  | " Keywords | ||
|  | syn keyword thriftKeyword namespace | ||
|  | syn keyword thriftKeyword xsd_all xsd_optional xsd_nillable xsd_attrs | ||
|  | syn keyword thriftKeyword include cpp_include cpp_type const optional required | ||
|  | syn keyword thriftBasicTypes void bool byte i8 i16 i32 i64 double string binary | ||
|  | syn keyword thriftStructure map list set struct typedef exception enum throws union | ||
|  | 
 | ||
|  | " Special | ||
|  | syn match thriftSpecial "\d\+:" | ||
|  | 
 | ||
|  | " Structure | ||
|  | syn keyword thriftStructure service oneway extends | ||
|  | "async"         { return tok_async;         } | ||
|  | "exception"     { return tok_xception;      } | ||
|  | "extends"       { return tok_extends;       } | ||
|  | "throws"        { return tok_throws;        } | ||
|  | "service"       { return tok_service;       } | ||
|  | "enum"          { return tok_enum;          } | ||
|  | "const"         { return tok_const;         } | ||
|  | 
 | ||
|  | hi def link thriftComment Comment | ||
|  | hi def link thriftKeyword Special | ||
|  | hi def link thriftBasicTypes Type | ||
|  | hi def link thriftStructure StorageClass | ||
|  | hi def link thriftTodo Todo | ||
|  | hi def link thriftString String | ||
|  | hi def link thriftNumber Number | ||
|  | hi def link thriftSpecial Special | ||
|  | hi def link thriftStructure Structure | ||
|  | 
 | ||
|  | let b:current_syntax = "thrift" |