aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Odding <peter@peterodding.com>2011-05-23 20:40:27 +0200
committerPeter Odding <peter@peterodding.com>2011-05-23 20:40:27 +0200
commit45e97ff1f9d0ca2201e704910d58247afa5ca9d6 (patch)
tree4f304403e43a240a414a0621926ab8a4fb224b1f
parentf980d5d303a2d1009fc8cba87791b12938ac053f (diff)
downloadvim-easytags-45e97ff1f9d0ca2201e704910d58247afa5ca9d6.tar.gz
Dynamic highlighting for Ruby source code (issue #9)
-rw-r--r--README.md3
-rw-r--r--autoload/xolox/easytags.vim23
-rw-r--r--doc/easytags.txt6
-rw-r--r--plugin/easytags.vim4
4 files changed, 30 insertions, 6 deletions
diff --git a/README.md b/README.md
index 85ab460..350c039 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ There's just one problem: You have to manually keep your tags files up-to-date a
Unzip the most recent [ZIP archive](http://peterodding.com/code/vim/downloads/easytags.zip) file inside your Vim profile directory (usually this is `~/.vim` on UNIX and `%USERPROFILE%\vimfiles` on Windows), restart Vim and execute the command `:helptags ~/.vim/doc` (use `:helptags ~\vimfiles\doc` instead on Windows). Now try it out: Edit any file type supported by Exuberant Ctags and within ten seconds the plug-in should create/update your tags file (`~/.vimtags` on UNIX, `~/_vimtags` on Windows) with the tags defined in the file you just edited! This means that whatever file you're editing in Vim (as long as it's on the local file system), tags will always be available by the time you need them!
-Additionally if the file you just opened is a C, C++, Objective-C, Java, Lua, Python, PHP or Vim source file you should also notice that the function and type names defined in the file have been syntax highlighted.
+Additionally if the file you just opened is a C, C++, Objective-C, Java, Lua, Python, PHP, Ruby or Vim source file you should also notice that the function and type names defined in the file have been syntax highlighted.
The `easytags.vim` plug-in is intended to work automatically once it's installed, but if you want to change how it works there are several options you can change and commands you can execute from your own mappings and/or automatic commands. These are all documented below.
@@ -127,6 +127,7 @@ The easytags plug-in defines new highlighting groups for dynamically highlighted
* **Python:** `pythonFunctionTag`, `pythonMethodTag`, `pythonClassTag`
* **Java:** `javaClassTag`, `javaMethodTag`
* **C#:** `csClassOrStructTag`, `csMethodTag`
+ * **Ruby:** `rubyModuleNameTag`, `rubyClassNameTag`, `rubyMethodNameTag`
As you can see each of these names ends in `Tag` to avoid conflicts with the syntax modes shipped with Vim. And about the singular/plural confusion: I've tried to match the existing highlighting groups defined by popular syntax modes (except of course for the `Tag` suffix).
diff --git a/autoload/xolox/easytags.vim b/autoload/xolox/easytags.vim
index 9ed06ec..b5c8b5a 100644
--- a/autoload/xolox/easytags.vim
+++ b/autoload/xolox/easytags.vim
@@ -1,6 +1,6 @@
" Vim script
" Author: Peter Odding <peter@peterodding.com>
-" Last Change: May 6, 2011
+" Last Change: May 23, 2011
" URL: http://peterodding.com/code/vim/easytags/
let s:script = expand('<sfile>:p:~')
@@ -628,6 +628,27 @@ call xolox#easytags#define_tagkind({
highlight def link csClass Identifier
highlight def link csMethod Function
+" Ruby. {{{2
+
+call xolox#easytags#define_tagkind({
+ \ 'filetype': 'ruby',
+ \ 'hlgroup': 'rubyModuleName',
+ \ 'filter': 'get(v:val, "kind") ==# "m"'})
+
+call xolox#easytags#define_tagkind({
+ \ 'filetype': 'ruby',
+ \ 'hlgroup': 'rubyClassName',
+ \ 'filter': 'get(v:val, "kind") ==# "c"'})
+
+call xolox#easytags#define_tagkind({
+ \ 'filetype': 'ruby',
+ \ 'hlgroup': 'rubyMethodName',
+ \ 'filter': 'get(v:val, "kind") =~# "[fF]"'})
+
+highlight def link rubyModuleName Type
+highlight def link rubyClassName Type
+highlight def link rubyMethodName Function
+
" }}}
" Restore "cpoptions".
diff --git a/doc/easytags.txt b/doc/easytags.txt
index b9ec98c..9ac777c 100644
--- a/doc/easytags.txt
+++ b/doc/easytags.txt
@@ -36,8 +36,8 @@ file you're editing in Vim (as long as it's on the local file system), tags
will always be available by the time you need them!
Additionally if the file you just opened is a C, C++, Objective-C, Java, Lua,
-Python, PHP or Vim source file you should also notice that the function and
-type names defined in the file have been syntax highlighted.
+Python, PHP, Ruby or Vim source file you should also notice that the function
+and type names defined in the file have been syntax highlighted.
The 'easytags.vim' plug-in is intended to work automatically once it's
installed, but if you want to change how it works there are several options
@@ -269,6 +269,8 @@ by the easytags plug-in:
- C#: 'csClassOrStructTag', 'csMethodTag'
+ - Ruby: 'rubyModuleNameTag', 'rubyClassNameTag', 'rubyMethodNameTag'
+
As you can see each of these names ends in 'Tag' to avoid conflicts with the
syntax modes shipped with Vim. And about the singular/plural confusion: I've
tried to match the existing highlighting groups defined by popular syntax
diff --git a/plugin/easytags.vim b/plugin/easytags.vim
index 4309ea1..fd3c535 100644
--- a/plugin/easytags.vim
+++ b/plugin/easytags.vim
@@ -1,10 +1,10 @@
" Vim plug-in
" Author: Peter Odding <peter@peterodding.com>
-" Last Change: May 2, 2011
+" Last Change: May 23, 2011
" URL: http://peterodding.com/code/vim/easytags/
" Requires: Exuberant Ctags (http://ctags.sf.net)
" License: MIT
-" Version: 2.2.7
+" Version: 2.2.8
" Support for automatic update using the GLVS plug-in.
" GetLatestVimScripts: 3114 1 :AutoInstall: easytags.zip