mirror of
				https://github.com/amix/vimrc
				synced 2025-10-26 09:33:36 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			1003 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1003 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| priority -50
 | |
| 
 | |
| global !p
 | |
| from vimsnippets import complete
 | |
| 
 | |
| FIELD_TYPES = [
 | |
| 	'double',
 | |
| 	'float',
 | |
| 	'int32',
 | |
| 	'int64',
 | |
| 	'uint32',
 | |
| 	'uint64',
 | |
| 	'sint32',
 | |
| 	'sint64',
 | |
| 	'fixed32',
 | |
| 	'fixed64',
 | |
| 	'sfixed32',
 | |
| 	'sfixed64',
 | |
| 	'bool',
 | |
| 	'string',
 | |
| 	'bytes']
 | |
| endglobal
 | |
| 
 | |
| snippet mess "Proto message" b
 | |
| // ${2:TODO(`whoami`): Describe this message.}
 | |
| message ${1:Name} {
 | |
| 	$0
 | |
| 
 | |
| 	// Next available id: 1
 | |
| }
 | |
| endsnippet
 | |
| 
 | |
| snippet reqf "Required field" b
 | |
| // ${4:TODO(`whoami`): Describe this field.}
 | |
| optional ${1}`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1};  // Required
 | |
| endsnippet
 | |
| 
 | |
| snippet optf "Optional field" b
 | |
| // ${4:TODO(`whoami`): Describe this field.}
 | |
| optional ${1}`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1};
 | |
| endsnippet
 | |
| 
 | |
| snippet repf "Repeated field" b
 | |
| // ${4:TODO(`whoami`): Describe this field.}
 | |
| repeated ${1}`!p snip.rv = complete(t[1], FIELD_TYPES)` ${2:name} = ${3:1};
 | |
| endsnippet
 | |
| 
 | |
| snippet enum "Enumeration" b
 | |
| // ${2:TODO(`whoami`): Describe this enum.}
 | |
| enum ${1:Name} {
 | |
| }
 | |
| endsnippet
 | 
