actually make the vim syntax work nicely + document it
This commit is contained in:
		
							parent
							
								
									6beaeec8e7
								
							
						
					
					
						commit
						10777c32f6
					
				
							
								
								
									
										13
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								README.md
									
									
									
									
									
								
							|  | @ -42,6 +42,16 @@ In any other case, you may set up a path to any compatible `diff` and `patch` | ||||||
| (or suitable wrapper scripts) via environment variables `WERGE_DIFF` and | (or suitable wrapper scripts) via environment variables `WERGE_DIFF` and | ||||||
| `WERGE_PATCH`. (If required, the same applies for `WERGE_GIT`.) | `WERGE_PATCH`. (If required, the same applies for `WERGE_GIT`.) | ||||||
| 
 | 
 | ||||||
|  | ### Editor integration | ||||||
|  | 
 | ||||||
|  | There's a `vim` syntax highlighting file in `vim/werge.vim`. To install, simply | ||||||
|  | copy it to your local `vim` syntax configuration directory (usually to | ||||||
|  | `~/.vim/syntax/werge.vim`). Then, you can activate the syntax in vim with: | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  | :set syn=werge | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| ## Demo | ## Demo | ||||||
| 
 | 
 | ||||||
| ##### Original (`old` file): | ##### Original (`old` file): | ||||||
|  | @ -74,7 +84,8 @@ Violets are blue. | ||||||
| Patching is hard.<<<<< I still||||| I===== | Patching is hard.<<<<< I still||||| I===== | ||||||
| I>>>>> cannot do verses. | I>>>>> cannot do verses. | ||||||
| ``` | ``` | ||||||
| (NOTE: option `-G` gives nicely colored output that is much easier to read.) | (NOTE: option `-G` gives nicely colored output that is much easier to read. | ||||||
|  | Alternatively you can install the syntax highlighting for `vim`.) | ||||||
| 
 | 
 | ||||||
| ##### Merge with separate space resultion | ##### Merge with separate space resultion | ||||||
| Adding option `-s` to `werge merge` causes it to resolve space conflicts | Adding option `-s` to `werge merge` causes it to resolve space conflicts | ||||||
|  |  | ||||||
							
								
								
									
										29
									
								
								vim/werge.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								vim/werge.vim
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,29 @@ | ||||||
|  | " Vim syntax file | ||||||
|  | " Language: werge | ||||||
|  | " Maintainer: Mirek Kratochvil | ||||||
|  | " Last Change: Oct 14, 2025 | ||||||
|  | " Version: 1 | ||||||
|  | " URL: https://github.com/exaexa/werge | ||||||
|  | 
 | ||||||
|  | " quit if a syntax file was already loaded | ||||||
|  | if exists("b:current_syntax") | ||||||
|  |   finish | ||||||
|  | endif | ||||||
|  | 
 | ||||||
|  | " syntax for the werge files | ||||||
|  | syntax region wergeHunk start=/<<<<</ end=/>>>>>/ contains=wergeRm,wergeDiffAdd,wergeConflictOrigAdd | ||||||
|  | syntax region wergeRm  start=/<<<<</hs=e+1  end=/|||||/he=s-1,me=s-1 contained | ||||||
|  | syntax match wergeDiffAdd /|||||\([^>=]\|>\{1,4\}>\@!\|=\{1,4\}=\@!\)*>>>>>/ms=s+5,me=e-5 contained | ||||||
|  | syntax match wergeConflictOrigAdd /|||||\([^=>]\|=\{1,4\}=\@!\|>\{1,4\}>\@!\)*=====\([^=>]\|=\{1,4\}=\@!\|>\{1,4\}>\@!\)*>>>>>/me=e-5 contained contains=wergeConflictOrig,wergeconflictAdd | ||||||
|  | syntax region wergeConflictOrig start=/|||||/hs=e+1  end=/=====/he=s-1,me=s-1 contained | ||||||
|  | syntax region wergeConflictAdd start=/=====/hs=e+1  end=/>>>>>/he=s-1,me=s-1 contained | ||||||
|  | 
 | ||||||
|  | " color specification | ||||||
|  | highlight default link wergeHunk Comment | ||||||
|  | highlight default link wergeRm Removed | ||||||
|  | highlight default link wergeDiffAdd Added | ||||||
|  | highlight default link wergeConflictOrigAdd Comment | ||||||
|  | highlight default link wergeConflictOrig Changed | ||||||
|  | highlight default link wergeConflictAdd Added | ||||||
|  | 
 | ||||||
|  | let b:current_syntax = "werge" | ||||||
|  | @ -1,8 +0,0 @@ | ||||||
| 
 |  | ||||||
| syntax region wergeDiffChange start=/<<<<</ end=/>>>>>/ contains=wergeDiffRm,wergeDiffAdd |  | ||||||
| syntax region wergeDiffRm  start=/<<<<</hs=e+1  end=/|||||/he=b-1,me=b-1 contained |  | ||||||
| syntax region wergeDiffAdd start=/|||||/hs=e+1  end=/>>>>>/he=b-1,me=b-1 contained |  | ||||||
| 
 |  | ||||||
| highlight default link wergeDiffChange Comment |  | ||||||
| highlight default link wergeDiffRm Removed |  | ||||||
| highlight default link wergeDiffAdd Added |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Mirek Kratochvil
						Mirek Kratochvil