[6a3bbb]: index.html Maximize Restore History

Download this file

index.html    117 lines (104 with data), 5.4 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<html>
<head>
<title>CtagsSideKick Plugin</title>
</head>
<body>
<h1>CtagsSideKick plugin documentation</h1>
Written by Shlomy Reinstein, October 2006.
<h2>Description</h2>
<p>CtagsSideKick is a SideKick service that provides a tag tree for the current
buffer based on the output of the "Exuberant ctags" tool, to simplify navigation
in the current buffer. </p>
<p>
CtagsSideKick is an enhanced version of the CodeBrowser plugin, that uses
SideKick instead of displaying its own dockable. A little bit of code was
inherited from the CodeBrowser, but this is mostly a rewrite. CtagsSideKick
provides several features that do not exist in CodeBrowser, mainly grouping
tags by namespace (e.g. grouping class members under the their class), and
icons representing the tag type (function/variable/...). These are especially
useful when there are several tags of the same name in the buffer.
On the other hand, there are several features of the CodeBrowser plugin that are
not provided by CtagsSideKick, mainly the buffer switcher.
CtagsSideKick works a little differently than CodeBrowser: It uses line
numbers rather than regular expressions for navigation. This has both advantages
and disadvantages. Navigation may not work correctly if the buffer is not
parsed after modification, however it will work correctly for tags defined
several times in the buffer with exact same lines (e.g. a "mouseMoved" method
defined in several different classes using the exact same header line).
</p>
<h2>Usage</h2>
<p>To use CtagsSideKick, open the SideKick dockable using
<tt>Plugins-&gt;CtagsSideKick-&gt;Sidekick</tt>. Once open, you can click the small triangle
near the top left corner and select the side on which to dock it.
</p>
<p>
By default, CtagsSideKick registers itself as a SideKick service for the C, C++,
and Java edit modes. You can also use it for many other modes (since "ctags"
supports many languages), but for other modes you'd have to select "ctags" from
the combo-box at the top right corner of the Sidekick dockable. (Or, if you
want to use it permanently for other modes, use the SideKick plugin options
to associate the "ctags" parser with the desired modes.)
</p>
<h2>Options</h2>
<p> CtagsSideKick provides the following options through
<tt> Plugins-&gt;Plugin Options-&gt;CtagsSideKick: </tt>
</p>
<ul>
<li>ctags path: Here you should specify the full path to your 'ctags'
executable. </li>
<li>Sort tags by name: Select this option to sort the tags by name,
or deselect it to sort the tags by their position in the buffer. </li>
<li>When sorting, folders precede leafs: This is useful when grouping
by namespace and sorting by name. Select this option if you want
namespaces (classes/structs/...) to be shown above non-namespace tags,
or deselect it to show all tags under a namespace sorted by name. For
example, if you have a class "A", a class "B" nested inside "A" (A.B),
and a member "a" inside A, selecting this option will put "B" on top of
"a" (because "B" is a namespace tag), and deselecting it will put "a" on
top of "B" (because "a" is alphabetically smaller than "B"). </li>
<li>
Group tags by: There are 3 different tree presentations.
<ol>
<li> Grouping by kind is the same as the CodeBrowser plugin. All functions will
be under a "function" parent, all classes under "class", and so on - a
simple 2-level deep tree. </li>
<li> Grouping by namespace (multi-level) will put
every tag under its namespace - e.g. "A.f()" will have two nodes - one
for the class "A" and one for method "f()". The method node will be
under the class node. </li>
<li>
Finally, grouping by namespace (flat) flattens nested namespaces by
concatenating their names with the namespace-separator character. E.g.
in C++, a function 'f' in a class 'B' that's nested inside a class 'A'
will create a node "A::B" in the tree (for class B) and put the node
for 'f' under it. </li>
</ol>
</li>
<li>Show icons: Select this option to show icons specifying the tag
type near each tag, deselect it to show the tags with no icons.
</li>
</ul>
<h2> Useful <tt>ctags.cnf</tt> for jEdit users </h2>
<p> Exuberant ctags can be configured by placing some default rules in either <tt>$HOME/.ctags</tt> or <tt>%USERPROFILE%/ctags.cnf</tt> (windows only). Placing these options into your ctags configuration file will make sidekick behave a little better for ant, html, and C++ files. In particular, C++ users will see function declarations as well as definitions, which will make sidekick much more useful when parsing header files. For ant <tt>build.xml</tt> files, we will see type-groupings of elements, to help separate the &lt;target&gt; from &lt;property&gt; elements.
</p>
<pre>
--langdef=ant
--regex-ant=/&lt;property[ \t]*name[ \t]*=[ \t]*\&quot;([^\&quot;]+)/\1/Properties/i
--regex-ant=/&lt;target[ \t]*name[ \t]*=[ \t]*\&quot;([^\&quot;]+)/\1/Targets/i
--regex-ant=/&lt;path[ \t]*id[ \t]*=[ \t]*\&quot;([^\&quot;]+)/\1/Paths/i
--regex-ant=/&lt;taskdef[ \t]*id[ \t]*=[ \t]*\&quot;([^\&quot;]+)/\1/Taskdefs/i
--regex-ant=/&lt;typedef[ \t]*id[ \t]*=[ \t]*\&quot;([^\&quot;]+)/\1/Typedefs/i
--langdef=xml
--langmap=xml:.xml
--regex-xml=/&lt;([^ \t]+)[ \t]*(\w+)[ \t]*=[ \t]*\&quot;([^\&quot;]+)/\1 \3/XML Tags/i
--extra=+q
--fields=+i
--langdef=html
--langmap=html:.html
--regex-html=/&lt;([^&gt;]+)&gt;/\1/HTML Tags/i
--c++-kinds=+p
</pre>
</ul>
<h3>Enjoy!</h3>
</body>
</html>