├── changes.zip ├── screencast.gif ├── autoload ├── changes_icons │ ├── add.bmp │ ├── add1.bmp │ ├── delete.bmp │ ├── delete1.bmp │ ├── warning.bmp │ ├── warning1.bmp │ └── license_designkode.txt └── changes.vim ├── .gitignore ├── todo.txt ├── Makefile ├── plugin └── changesPlugin.vim ├── README.md └── doc └── ChangesPlugin.txt /changes.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbra/changesPlugin/HEAD/changes.zip -------------------------------------------------------------------------------- /screencast.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbra/changesPlugin/HEAD/screencast.gif -------------------------------------------------------------------------------- /autoload/changes_icons/add.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbra/changesPlugin/HEAD/autoload/changes_icons/add.bmp -------------------------------------------------------------------------------- /autoload/changes_icons/add1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbra/changesPlugin/HEAD/autoload/changes_icons/add1.bmp -------------------------------------------------------------------------------- /autoload/changes_icons/delete.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbra/changesPlugin/HEAD/autoload/changes_icons/delete.bmp -------------------------------------------------------------------------------- /autoload/changes_icons/delete1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbra/changesPlugin/HEAD/autoload/changes_icons/delete1.bmp -------------------------------------------------------------------------------- /autoload/changes_icons/warning.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbra/changesPlugin/HEAD/autoload/changes_icons/warning.bmp -------------------------------------------------------------------------------- /autoload/changes_icons/warning1.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chrisbra/changesPlugin/HEAD/autoload/changes_icons/warning1.bmp -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | post.pl 2 | vim_passfile 3 | .*.un~ 4 | .*.sw* 5 | # ignore vimballs 6 | *.vba 7 | *.vmb 8 | # ignore *.orig files 9 | *.orig 10 | # ignore some zip files 11 | *-*.zip 12 | -------------------------------------------------------------------------------- /autoload/changes_icons/license_designkode.txt: -------------------------------------------------------------------------------- 1 | URL: http://www.designkode.com/blog/free-developer-icons 2 | License: Creative Commons (Attribution 3.0 Unported) 3 | "DesignKode is releasing this set of 40 free high quality icons for your web site and application GUI designs. All icons in this set are 32 x 32 pixel PNG image files. You may freely use these icons in your commercial or personal projects without attribution." 4 | -------------------------------------------------------------------------------- /todo.txt: -------------------------------------------------------------------------------- 1 | - In insert mode, when enter is pressed (a new line is inserted, update the sign column) 2 | - Other VCS types: perforce, accurev, fossil [ find project.fossil upwards ] 3 | - remove svk (seems to be dead, not even available on the internet 4 | - Make FocusGained autocommand work in Windows ( 5 | temporarily set ei=FocusGained when getting the system output 6 | and later reset eventignore) 7 | - add timing statistics for debug mode 8 | - better update of highlighting (if lines change, add offset to highlighting pattern) 9 | - Make highlighting use its own highlight group (which might be linked to whatever group) 10 | - add staging possibility for at least hg 11 | 12 | " Should work now: 13 | - more ways to highlight changes: 14 | - display only signs (currently only way) 15 | - display signs + line highlighting 16 | - display only line highlighting (make signs invisible using text 17 | - Make a toggle function! 18 | 19 | - Signs are too often undefined... why? 20 | 21 | - instead of every time unplacing and replacing all signs, 22 | only add newly added signs and remove old unneccessary signs 23 | -> should be faster. 24 | - Make sure, updating does change the correct lines 25 | (e.g. after adding lines, the old lines id need to be adjusted!) 26 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SCRIPT=$(wildcard plugin/*.vim) 2 | AUTOL =$(wildcard autoload/*.vim) 3 | DOC=$(wildcard doc/*.txt) 4 | PLUGIN=$(shell basename "$$PWD") 5 | VERSION=$(shell sed -n '/Version:/{s/^.*\(\S\.\S\+\)$$/\1/;p}' $(SCRIPT)) 6 | 7 | .PHONY: $(PLUGIN).vmb 8 | 9 | all: uninstall vimball install 10 | 11 | vimball: $(PLUGIN).vmb 12 | 13 | zip: $(PLUGIN).zip 14 | 15 | release: uninstall version zip 16 | 17 | clean: 18 | rm -rf *.vmb *.vba */*.orig *.~* .VimballRecord doc/tags 19 | find . -type f \( -name "*.vba" -o -name "*.orig" -o -name "*.~*" \ 20 | -o -name ".VimballRecord" -o -name ".*.un~" -o -name "*.sw*" -o \ 21 | -name tags -o -name "*.vmb" \) -delete 22 | 23 | dist-clean: clean 24 | 25 | install: 26 | vim -N -i NONE -u NONE -c 'ru! plugin/vimballPlugin.vim' -c':so %' -c':q!' $(PLUGIN)-$(VERSION).vmb 27 | 28 | uninstall: 29 | vim -N -i NONE -u NONE -c 'ru! plugin/vimballPlugin.vim' -c':RmVimball' -c':q!' $(PLUGIN)-$(VERSION).vmb 30 | 31 | undo: 32 | for i in */*.orig; do mv -f "$$i" "$${i%.*}"; done 33 | 34 | archive: $(PLUGIN).zip 35 | 36 | $(PLUGIN).zip: 37 | -@/bin/sh -c "if [ -f $(PLUGIN).zip ]; then \ 38 | zip -u --verbose $(PLUGIN).zip ${SCRIPT} ${AUTOL} ${DOC} autoload/*/* ; \ 39 | else \ 40 | zip $(PLUGIN).zip ${SCRIPT} ${AUTOL} ${DOC} autoload/*/* ; \ 41 | fi " 42 | ln -f $(PLUGIN).zip $(PLUGIN)-$(VERSION).zip 43 | 44 | $(PLUGIN).vmb: 45 | rm -f $(PLUGIN)-$(VERSION).vmb 46 | vim -N -i NONE -u NONE -c 'ru! plugin/vimballPlugin.vim' -c ':call append("0", [ "$(SCRIPT)", "$(AUTOL)", "$(DOC)"])' -c '$$d' -c ":%MkVimball $(PLUGIN)-$(VERSION) ." -c':q!' 47 | ln -f $(PLUGIN)-$(VERSION).vmb $(PLUGIN).vmb 48 | 49 | release: version all 50 | 51 | version: 52 | perl -i.orig -pne 'if (/Version:/) {s/\.(\d*)/sprintf(".%d", 1+$$1)/e}' ${SCRIPT} ${AUTOL} 53 | perl -i -pne 'if (/GetLatestVimScripts:/) {s/(\d+)\s+:AutoInstall:/sprintf("%d :AutoInstall:", 1+$$1)/e}' ${SCRIPT} ${AUTOL} 54 | #perl -i -pne 'if (/Last Change:/) {s/\d+\.\d+\.\d\+$$/sprintf("%s", `date -R`)/e}' ${SCRIPT} 55 | perl -i -pne 'if (/Last Change:/) {s/(:\s+).*\n/sprintf(": %s", `date -R`)/e}' ${SCRIPT} ${AUTOL} 56 | perl -i.orig -pne 'if (/Version:/) {s/\.(\d+).*\n/sprintf(".%d %s", 1+$$1, `date -R`)/e}' ${DOC} 57 | VERSION=$(shell sed -n '/Version:/{s/^.*\(\S\.\S\+\)$$/\1/;p}' $(SCRIPT)) 58 | -------------------------------------------------------------------------------- /plugin/changesPlugin.vim: -------------------------------------------------------------------------------- 1 | " ChangesPlugin.vim - Using Signs for indicating changed lines 2 | " --------------------------------------------------------------- 3 | " Version: 0.16 4 | " Authors: Christian Brabandt 5 | " Last Change: Thu, 15 Jan 2015 21:16:40 +0100 6 | " Script: http://www.vim.org/scripts/script.php?script_id=3052 7 | " License: VIM License 8 | " Documentation: see :help changesPlugin.txt 9 | " GetLatestVimScripts: 3052 15 :AutoInstall: ChangesPlugin.vim 10 | " --------------------------------------------------------------------- 11 | " Load Once: {{{1 12 | if &cp || exists("g:loaded_changes") 13 | finish 14 | endif 15 | let g:loaded_changes = 1 16 | let s:keepcpo = &cpo 17 | set cpo&vim 18 | if v:version < 800 && !has('nvim') 19 | echohl WarningMsg 20 | echomsg "The ChangesPlugin needs at least a Vim version 8" 21 | echohl Normal 22 | finish 23 | endif 24 | 25 | " --------------------------------------------------------------------- 26 | " Public Functions: {{{1 27 | fu! ChangesMap(char) "{{{2 28 | if a:char is '' 29 | imap