annotate doc/gutentags.txt @ 136:286e5b3095d0

Allow restricting tag generation to files listed by custom commands This adds a new setting, g:gutentags_file_list_command, which specifies command(s) to use to list files for which tags should be generated, instead of recursively examining all files within the project root. This is useful in projects using source control to restrict tag generation to only files tracked in the repository. This setting is conceptually similar to CtrlP's ctrlp_user_command option. This implements the feature requested in https://github.com/ludovicchabant/vim-gutentags/issues/90
author Stephen Kent <smkent@smkent.net>
date Fri, 22 Jul 2016 19:25:05 -0700
parents a6ef1c860d07
children 851aec42057d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
1 *gutentags.txt* Automatic ctags management for VIM
24
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
2 ___ ___ ___ ___
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
3 /\__\ /\ \ /\__\ /\ \
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
4 /:/ _/_ \:\ \ ___ /:/ _/_ \:\ \
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
5 /:/ /\ \ \:\ \ /\__\ /:/ /\__\ \:\ \
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
6 /:/ /::\ \ ___ \:\ \ /:/ / /:/ /:/ _/_ _____\:\ \
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
7 /:/__\/\:\__\ /\ \ \:\__\ /:/__/ /:/_/:/ /\__\ /::::::::\__\
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
8 \:\ \ /:/ / \:\ \ /:/ / /::\ \ \:\/:/ /:/ / \:\~~\~~\/__/
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
9 \:\ /:/ / \:\ /:/ / /:/\:\ \ \::/_/:/ / \:\ \
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
10 \:\/:/ / \:\/:/ / \/__\:\ \ \:\/:/ / \:\ \
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
11 \::/ / \::/ / \:\__\ \::/ / \:\__\
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
12 \/__/ \/__/ \/__/ \/__/ \/__/
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
13 ___ ___ ___
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
14 /\ \ /\__\ /\__\
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
15 ___ /::\ \ /:/ _/_ /:/ _/_
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
16 /\__\ /:/\:\ \ /:/ /\ \ /:/ /\ \
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
17 /:/ / /:/ /::\ \ /:/ /::\ \ /:/ /::\ \
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
18 /:/__/ /:/_/:/\:\__\ /:/__\/\:\__\ /:/_/:/\:\__\
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
19 /::\ \ \:\/:/ \/__/ \:\ \ /:/ / \:\/:/ /:/ /
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
20 /:/\:\ \ \::/__/ \:\ /:/ / \::/ /:/ /
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
21 \/__\:\ \ \:\ \ \:\/:/ / \/_/:/ /
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
22 \:\__\ \:\__\ \::/ / /:/ /
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
23 \/__/ \/__/ \/__/ \/__/
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
24
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
25
24
bab5f37faa1e More renaming.
Ludovic Chabant <ludovic@chabant.com>
parents: 22
diff changeset
26 GUTENTAGS REFERENCE MANUAL
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
27 by Ludovic Chabant
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
28
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
29 *gutentags*
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
30
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
31 1. Introduction |gutentags-intro|
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
32 2. Commands |gutentags-commands|
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
33 3. Status Line |gutentags-status-line|
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
34 4. Global Settings |gutentags-settings|
49
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
35 5. Project Settings |gutentags-project-settings|
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
36
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
37 =============================================================================
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
38 1. Introduction *gutentags-intro*
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
39
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
40 Gutentags is a plugin that takes care of the much needed management of tags
7
49e3cb99ab27 Small edits.
Ludovic Chabant <ludovic@chabant.com>
parents: 4
diff changeset
41 files in Vim. It will (re)generate tag files as you work while staying
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
42 completely out of your way. It will even do its best to keep those tag files
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
43 out of your way too. It has no dependencies and just works.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
44
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
45 In order to generate tag files, Gutentags will have to figure out what's in
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
46 your project. To do this, it will locate well-known project root markers like
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
47 SCM folders (.git, .hg, etc.), any custom tags you define (with
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
48 |gutentags_project_root|), and even things you may have defined already with
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
49 other plugins, like CtrlP.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
50
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
51 If the current file you're editing is found to be in such a project, Gutentags
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
52 will make sure the tag file for that project is up to date. Then, as you work
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
53 in files in that project, it will partially re-generate the tag file. Every
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
54 time you save, it will silently, in the background, update the tags for that
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
55 file.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
56
129
48045d81f25a Fix some typos in the docs.
Ludovic Chabant <ludovic@chabant.com>
parents: 128
diff changeset
57 Usually, `ctags` can only append tags to an existing tag file, so Gutentags
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
58 removes the tags for the current file first, to make sure the tag file is
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
59 always consistent with the source code.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
60
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
61 Also, Gutentags is clever enough to not stumble upon itself by triggering
129
48045d81f25a Fix some typos in the docs.
Ludovic Chabant <ludovic@chabant.com>
parents: 128
diff changeset
62 multiple ctags processes if you save files too fast, or your project is really
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
63 big.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
64
7
49e3cb99ab27 Small edits.
Ludovic Chabant <ludovic@chabant.com>
parents: 4
diff changeset
65 There are some similar Vim plugins out there ("vim-tags", "vim-autotag",
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
66 "vim-automatic-ctags", etc.). They all fail on one or more of the requirements
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
67 I set for myself with Gutentags:
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
68
7
49e3cb99ab27 Small edits.
Ludovic Chabant <ludovic@chabant.com>
parents: 4
diff changeset
69 * No other dependency than running Vim: no Python, Ruby, or whatever.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
70 * Cross-platform: should work on at least Mac and Windows.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
71 * Incremental tags generation: don't re-generate the whole project all the
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
72 time. This may be fine for small projects, but it doesn't scale.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
73 * External process management: if the ctags process is taking a long time,
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
74 don't run another one because I saved the file again.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
75 * Keep the tag file consistent: don't just append the current file's tags to
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
76 the tag file, otherwise you will still "see" tags for deleted or renamed
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
77 classes and functions.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
78 * Automatically create the tag file: you open something from a freshly forked
129
48045d81f25a Fix some typos in the docs.
Ludovic Chabant <ludovic@chabant.com>
parents: 128
diff changeset
79 project, it should start indexing it automatically, just like in Sublime Text
48045d81f25a Fix some typos in the docs.
Ludovic Chabant <ludovic@chabant.com>
parents: 128
diff changeset
80 or Visual Studio or any other IDE.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
81
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
82
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
83 =============================================================================
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
84 2. Commands *gutentags-commands*
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
85
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
86 *gutentags-project-commands*
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
87 The following commands are only available in buffers that have been found to
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
88 belong to a project that should be managed by Gutentags. See
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
89 |gutentags_project_root| for how Gutentags figures out the project a file
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
90 belongs to. When not project is found (i.e. the file is not under any of the
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
91 known project markers), Gutentags is disabled for that buffer, and the
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
92 following commands and remarks don't apply.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
93
47
7b419abf7fba Add ability to disable Gutentags if a `.notags` file is at the root.
Ludovic Chabant <ludovic@chabant.com>
parents: 46
diff changeset
94 If you want to force-disable Gutentags for a given project even though it does
7b419abf7fba Add ability to disable Gutentags if a `.notags` file is at the root.
Ludovic Chabant <ludovic@chabant.com>
parents: 46
diff changeset
95 match one of the items in |gutentags_project_root|, create a file named
7b419abf7fba Add ability to disable Gutentags if a `.notags` file is at the root.
Ludovic Chabant <ludovic@chabant.com>
parents: 46
diff changeset
96 "`.notags`" at the root of the project.
7b419abf7fba Add ability to disable Gutentags if a `.notags` file is at the root.
Ludovic Chabant <ludovic@chabant.com>
parents: 46
diff changeset
97
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
98 The tag file that Gutentags creates and manages will be named after
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
99 |gutentags_tagfile|, relative to the project's root directory. When Gutentags
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
100 finds a valid project root, it will prepend the tag file's path to 'tags',
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
101 unless |gutentags_auto_set_tags| is set to 0. This is to make sure Vim will use
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
102 that file first.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
103
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
104 If a file managed by Gutentags is opened and no tag file already exists,
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
105 Gutentags will start generating it right away in the background, unless
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
106 |gutentags_generate_on_missing| is set to 0. If you have a large project, you
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
107 may want to know when Gutentags is generating tags: see
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
108 |gutentags-status-line| to display an indicator in your status line.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
109
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
110 When a file managed by Gutentags is saved, the tag file will be incrementally
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
111 updated, i.e. references to the recently saved file are removed, and that file
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
112 is re-parsed for tags, with the result being merged into the tag file. This
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
113 makes the tag file 100% consistent with the latest changes. This doesn't
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
114 happen however if |gutentags_generate_on_write| is set to 0, in which case you
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
115 have to run |GutentagsUpdate| manually.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
116
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
117
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
118 *:GutentagsUpdate*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
119 :GutentagsUpdate
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
120 Forces an update of the current tag file with the
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
121 current buffer. If tags are already being generated,
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
122 you will be notified and the command will abort.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
123
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
124 :GutentagsUpdate!
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
125 Like |GutentagsUpdate|, but updates the current tags
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
126 file with the whole project instead of just the
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
127 current buffer.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
128
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
129
46
c0f56e4d52bd Make a bunch of advanced commands opt-in only.
Ludovic Chabant <ludovic@chabant.com>
parents: 43
diff changeset
130 Some debugging/troubleshooting commands are also available if the
c0f56e4d52bd Make a bunch of advanced commands opt-in only.
Ludovic Chabant <ludovic@chabant.com>
parents: 43
diff changeset
131 |gutentags_define_advanced_commands| global setting is set to 1.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
132
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
133 *:GutentagsToggleEnabled*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
134 :GutentagsToggleEnabled
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
135 Disables and re-enables Gutentags.
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
136 When Gutentags is disabled, it won't update your tag
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
137 file when you save a buffer. It will however still
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
138 look for project markers as you open new buffers so
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
139 that they can start working again when you re-enable
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
140 Gutentags.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
141
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
142 *GutentagsToggleTrace*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
143 :GutentagsToggleTrace
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
144 If you want to keep an eye on what Gutentags is doing,
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
145 you can enable tracing. This will show messages every
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
146 time Gutentags does something. It can get annoying
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
147 quickly, since it will require you to press a key to
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
148 dismiss those messages, but it can be useful to
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
149 troubleshoot a problem.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
150 In addition to messages in Vim, it will also make
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
151 Gutentags redirect the output of the tag generation
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
152 script to a `.log` file in the project root.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
153
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
154 *:GutentagsUnlock*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
155 :GutentagsUnlock
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
156 Gutentags uses a `.lock` file to know when tag
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
157 generation is running. If something goes wrong with
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
158 that process, that lock file could be left behind. You
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
159 could just remove it manually from the root of your
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
160 project, but you can also run |:GutentagsUnlock| so
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
161 that Vim does it for you.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
162 If you find that you need to use this more than a
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
163 couple times ever, there's probably a bug with
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
164 Gutentags, or something otherwise wrong or unexpected
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
165 with your system. Please file a bug.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
166
49
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
167
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
168 =============================================================================
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
169 3. Status Line *gutentags-status-line*
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
170
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
171 Tag file generation can take a while if you're working on a project big
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
172 enough. In that case, you may want to know when `ctags` is running, so you
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
173 have a heads up if some of the tags aren't recognized yet.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
174
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
175 *gutentags#statusline()*
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
176 You can display and indicator of tag generation progress in your |status-line|
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
177 with the following function: >
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
178 :set statusline+=%{gutentags#statusline()}
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
179
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
180 This won't print anything unless Gutentags figures that `ctags` is running in
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
181 the background. This is done by checking a `.lock` file next to the tag file,
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
182 but there's also some optimization before that to not slow down Vim. Note that
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
183 the `.lock` file can sometimes be left around incorrectly by the background
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
184 process, and you may need to clean it up. See |:GutentagsUnlock|.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
185
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
186 When Gutentags thinks `ctags` is still running, it will print the string
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
187 "TAGS" by default. You can customize it: >
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
188 :set statusline+=%{gutentags#statusline('[Generating...]')}
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
189
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
190 This will print the string "[Generating...]" when tags are being generated.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
191
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
192
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
193 =============================================================================
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
194 4. Global Settings *gutentags-settings*
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
195
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
196 The following settings can be defined in your |vimrc| to change the default
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
197 behaviour of Gutentags.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
198
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
199 *gutentags_enabled*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
200 g:gutentags_enabled
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
201 Defines whether Gutentags should be enabled. When
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
202 disabled, Gutentags will still scan for project root
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
203 markers when opening buffers. This is so that when you
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
204 re-enable Gutentags, you won't have some buffers
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
205 mysteriously working while others (those open last)
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
206 don't.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
207 Defaults to 1.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
208
43
7000d598a2a7 Documentation changes for some options that changed names.
Ludovic Chabant <ludovic@chabant.com>
parents: 24
diff changeset
209 *gutentags_ctags_executable*
7000d598a2a7 Documentation changes for some options that changed names.
Ludovic Chabant <ludovic@chabant.com>
parents: 24
diff changeset
210 g:gutentags_ctags_executable
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
211 Specifies the ctags executable to launch.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
212 Defaults to `ctags`.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
213
68
ca61487b3215 Add docs about ctags executable per filetype
marc <marc@lamarciana.com>
parents: 60
diff changeset
214 *gutentags_ctags_executable_{filetype}*
89
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
215 g:gutentags_ctags_executable_{type}
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
216 Specifies the ctags executable to launch for a project
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
217 of type {type}. See |gutentags_project_info| for more
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
218 information.
68
ca61487b3215 Add docs about ctags executable per filetype
marc <marc@lamarciana.com>
parents: 60
diff changeset
219 Example: >
ca61487b3215 Add docs about ctags executable per filetype
marc <marc@lamarciana.com>
parents: 60
diff changeset
220 let g:gutentags_ctags_executable_ruby = 'ripper-tags'
ca61487b3215 Add docs about ctags executable per filetype
marc <marc@lamarciana.com>
parents: 60
diff changeset
221 <
ca61487b3215 Add docs about ctags executable per filetype
marc <marc@lamarciana.com>
parents: 60
diff changeset
222
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
223 *gutentags_tagfile*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
224 g:gutentags_tagfile
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
225 Specifies the name of the tag file to create. This
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
226 will be appended to the project's root. See
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
227 |gutentags_project_root| for how Gutentags locates the
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
228 project.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
229 Defaults to `tags`.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
230
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
231 *gutentags_project_root*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
232 g:gutentags_project_root
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
233 When a buffer is loaded, Gutentags will figure out if
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
234 it's part of a project that should have tags managed
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
235 automatically. To do this, it looks for "root markers"
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
236 in the current file's directory and its parent
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
237 directories. If it finds any of those markers,
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
238 Gutentags will be enabled for the project, and a tags
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
239 file named after |gutentags_tagfile| will be created at
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
240 the project root.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
241 Defaults to `[]` (an empty |List|).
128
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
242 A list of default markers will be appended to the
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
243 user-defined ones unless
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
244 |gutentags_add_default_project_roots| is set to 0.
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
245
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
246 *gutentags_add_default_project_roots*
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
247 g:gutentags_add_default_project_roots
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
248 Defines whether Gutentags should always define some
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
249 default project roots (see |gutentags_project_root|).
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
250 This can be useful to prevent unnecessary disk access
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
251 when Gutentags searches for a project root.
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
252 The default markers are:
e673026faa56 Add option to not append the default project root markers.
Ludovic Chabant <ludovic@chabant.com>
parents: 124
diff changeset
253 `['.git', '.hg', '.bzr', '_darcs', '_darcs', '_FOSSIL_', '.fslckout']`
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
254
118
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
255 *gutentags_exclude_project_root*
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
256 g:gutentags_exclude_project_root
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
257 A list of project roots to generally ignore. If a file
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
258 is opened inside one of those projects, Gutentags
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
259 won't be activated. This is similar to placing
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
260 a `.notags` file in the root of those projects, but
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
261 can be useful when you don't want to, or can't, place
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
262 such a file there.
132
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
263 Defaults to `['/usr/local']`, which is the folder where
118
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
264 Homebrew is known to create a Git directory by default
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
265 on MacOS.
2838af9ff980 Add `g:gutentags_exclude_project_root`.
Ludovic Chabant <ludovic@chabant.com>
parents: 98
diff changeset
266
132
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
267 *gutentags_project_root_finder*
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
268 g:gutentags_project_root_finder
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
269 When a buffer is loaded, Gutentags uses a default
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
270 (internal) implementation to find that file's
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
271 project's root directory, using settings like
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
272 |g:gutentags_project_root|. When you specify
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
273 |g:gutentags_project_root_finder|, you can tell
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
274 Gutentags to use a custom implementation, such as
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
275 `vim-projectroot`. The value of this setting must be
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
276 the name of a function that takes a single string
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
277 argument (the path to the current buffer's file) and
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
278 returns a string value (the project's root directory).
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
279 Defaults to `''`.
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
280 Note: when set, the called implementation will most
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
281 likely ignore |g:gutentags_project_root|.
a6ef1c860d07 Add support for custom root finders like `vim-projectroot`.
Ludovic Chabant <ludovic@chabant.com>
parents: 129
diff changeset
282
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
283 *gutentags_exclude*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
284 g:gutentags_exclude
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
285 A list of file patterns to pass to the
60
9e768b83d701 Fix missing renames of `gutentags_ctags_executable`.
Ludovic Chabant <ludovic@chabant.com>
parents: 49
diff changeset
286 |gutentags_ctags_executable| so that they will be
9e768b83d701 Fix missing renames of `gutentags_ctags_executable`.
Ludovic Chabant <ludovic@chabant.com>
parents: 49
diff changeset
287 excluded from parsing for the tags generation.
9e768b83d701 Fix missing renames of `gutentags_ctags_executable`.
Ludovic Chabant <ludovic@chabant.com>
parents: 49
diff changeset
288 Defaults to `[]` (an empty |List|). Patterns defined
9e768b83d701 Fix missing renames of `gutentags_ctags_executable`.
Ludovic Chabant <ludovic@chabant.com>
parents: 49
diff changeset
289 in 'wildignore' will also be given as exclude patterns
9e768b83d701 Fix missing renames of `gutentags_ctags_executable`.
Ludovic Chabant <ludovic@chabant.com>
parents: 49
diff changeset
290 to the `ctags` executable.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
291
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
292 *gutentags_auto_set_tags*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
293 g:gutentags_auto_set_tags
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
294 If set to 1, Gutentags will automatically prepend
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
295 'tags' with the exact path to the tag file for the
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
296 current project. See |gutentags_project_root| for how
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
297 Gutentags locates the project.
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
298 When set to 0, Gutentags doesn't change 'tags', and
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
299 this means that whatever tag file it generates may
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
300 not be picked up by Vim. See |tagfiles()| to know what
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
301 tag files Vim knows about.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
302 Defaults to 1.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
303
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
304 *gutentags_generate_on_missing*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
305 g:gutentags_generate_on_missing
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
306 If set to 1, Gutentags will start generating an initial
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
307 tag file if a file is open in a project where no tags
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
308 file is found. See |gutentags_project_root| for how
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
309 Gutentags locates the project.
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
310 When set to 0, Gutentags will only generate the first
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
311 time the file is saved (if
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
312 |gutentags_generate_on_write| is set to 1), or when
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
313 |GutentagsUpdate| or |GutentagsGenerate| is run.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
314 Defaults to 1.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
315
61
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
316 *gutentags_generate_on_new*
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
317 g:gutentags_generate_on_new
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
318 If set to 1, Gutentags will start generating the tag
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
319 file when a new project is open. A new project is
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
320 considered open when a buffer is created for a file
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
321 whose corresponding tag file has not been "seen" yet
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
322 in the current Vim session -- which pretty much means
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
323 when you open the first file in a given source control
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
324 repository.
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
325 When set to 0, Gutentags won't do anything special.
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
326 See also |gutentags_generate_on_missing| and
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
327 |gutentags_generate_on_write|.
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
328 Defaults to 1.
735fce322ae4 Add documentation for `g:gutentags_generate_on_new`.
Ludovic Chabant <ludovic@chabant.com>
parents: 60
diff changeset
329
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
330 *gutentags_generate_on_write*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
331 g:gutentags_generate_on_write
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
332 If set to 1, Gutentags will update the current
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
333 project's tag file when a file inside that project is
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
334 saved. See |gutentags_project_root| for how Gutentags
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
335 locates the project.
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
336 When set to 0, Gutentags won't do anything on save.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
337 This means that the project's tag file won't reflect
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
338 the latest changes, and you will have to run
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
339 |GutentagsUpdate| manually.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
340 Defaults to 1.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
341
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
342 *gutentags_background_update*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
343 g:gutentags_background_update
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
344 Specifies whether the process that updates the tags
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
345 file should be run in the background or in the
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
346 foreground. If run in the foreground, Vim will block
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
347 until the process is complete.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
348 Defaults to 1.
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
349
22
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
350 *gutentags_cache_dir*
4e1b0253f71a Renamed project to "Gutentags" (thanks Sylvain!).
Ludovic Chabant <ludovic@chabant.com>
parents: 20
diff changeset
351 g:gutentags_cache_dir
20
bd136cb41034 Update documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 17
diff changeset
352 Specifies a directory in which to create all the tags
bd136cb41034 Update documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 17
diff changeset
353 files, instead of writing them at the root of each
bd136cb41034 Update documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 17
diff changeset
354 project. This is handy to keep tags files from
bd136cb41034 Update documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 17
diff changeset
355 polluting many directories all across your computer.
4
512eaa56c7db First pass at documentation.
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
356
85
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
357 *gutentags_resolve_symlinks*
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
358 g:gutentags_resolve_symlinks
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
359 When set to 1, Gutentags will resolve any symlinks in
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
360 the current buffer's path in order to find the project
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
361 it belongs to. This is what you want if you're editing
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
362 a symlink located outside of the project, and it
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
363 points to a file inside the project. However, this is
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
364 maybe not what you want if the symlink itself is
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
365 part of the project.
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
366 Defaults to 0.
88
073e63cc0456 Add `gutentags_enabled_user_func` callback.
Ludovic Chabant <ludovic@chabant.com>
parents: 85
diff changeset
367
073e63cc0456 Add `gutentags_enabled_user_func` callback.
Ludovic Chabant <ludovic@chabant.com>
parents: 85
diff changeset
368 *gutentags_enabled_user_func*
073e63cc0456 Add `gutentags_enabled_user_func` callback.
Ludovic Chabant <ludovic@chabant.com>
parents: 85
diff changeset
369 g:gutentags_enabled_user_func
073e63cc0456 Add `gutentags_enabled_user_func` callback.
Ludovic Chabant <ludovic@chabant.com>
parents: 85
diff changeset
370 When set to a non-empty string, it is expected to be
073e63cc0456 Add `gutentags_enabled_user_func` callback.
Ludovic Chabant <ludovic@chabant.com>
parents: 85
diff changeset
371 the name of a function that will be called when a file
123
76a4822aab76 Use existing b:gutentags_root
Daniel Hahler <git@thequod.de>
parents: 98
diff changeset
372 is opened in a project. The function gets passed the
88
073e63cc0456 Add `gutentags_enabled_user_func` callback.
Ludovic Chabant <ludovic@chabant.com>
parents: 85
diff changeset
373 path of the file and if it returns 0, Gutentags won't
073e63cc0456 Add `gutentags_enabled_user_func` callback.
Ludovic Chabant <ludovic@chabant.com>
parents: 85
diff changeset
374 be enabled for that file.
123
76a4822aab76 Use existing b:gutentags_root
Daniel Hahler <git@thequod.de>
parents: 98
diff changeset
375 You can use this also to manually set `b:gutentags_root`
76a4822aab76 Use existing b:gutentags_root
Daniel Hahler <git@thequod.de>
parents: 98
diff changeset
376 (see |gutentags_project_root|).
88
073e63cc0456 Add `gutentags_enabled_user_func` callback.
Ludovic Chabant <ludovic@chabant.com>
parents: 85
diff changeset
377 Defaults to "".
85
0424970d81f8 Add a `g:gutentags_resolve_symlinks` option to resolve symlinks at setup time.
Ludovic Chabant <ludovic@chabant.com>
parents: 74
diff changeset
378
46
c0f56e4d52bd Make a bunch of advanced commands opt-in only.
Ludovic Chabant <ludovic@chabant.com>
parents: 43
diff changeset
379 *gutentags_define_advanced_commands*
c0f56e4d52bd Make a bunch of advanced commands opt-in only.
Ludovic Chabant <ludovic@chabant.com>
parents: 43
diff changeset
380 g:gutentags_define_advanced_commands
c0f56e4d52bd Make a bunch of advanced commands opt-in only.
Ludovic Chabant <ludovic@chabant.com>
parents: 43
diff changeset
381 Defines some advanced commands like
c0f56e4d52bd Make a bunch of advanced commands opt-in only.
Ludovic Chabant <ludovic@chabant.com>
parents: 43
diff changeset
382 |GutentagsToggleEnabled| and |GutentagsUnlock|.
c0f56e4d52bd Make a bunch of advanced commands opt-in only.
Ludovic Chabant <ludovic@chabant.com>
parents: 43
diff changeset
383
89
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
384 *gutentags_project_info*
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
385 g:gutentags_project_info
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
386 Defines ways for Gutentags to figure out what kind of
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
387 project any given file belongs to. This should be
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
388 a list of dictionaries:
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
389
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
390 let g:gutentags_project_info = []
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
391 call add(g:gutentags_project_info, {...})
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
392
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
393 Each dictionary item must contain at least a `type`
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
394 key, indicating the type of project:
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
395
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
396 {"type": "python"}
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
397
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
398 Other items will be used to figure out if a project is
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
399 of the given type.
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
400
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
401 "file": any existing file with this path (relative to
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
402 the project root) will make the current project match
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
403 the given info.
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
404
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
405 "glob": any result found with this glob pattern
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
406 (relative to the project root) will make the current
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
407 project match the given info. See |glob()| for more
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
408 information.
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
409
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
410 Gutentags adds by default the following definitions:
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
411
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
412 call add(g:gutentags_project_info, {'type': 'python', 'file': 'setup.py'})
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
413 call add(g:gutentags_project_info, {'type': 'ruby', 'file': 'Gemfile'})
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
414
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
415 This means, for example, that you can use
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
416 `g:gutentags_ctags_executable_ruby` out of the box.
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
417 See |gutentags_ctags_executable_{filetype}| for more
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
418 information.
8bf96f9f649c Add support for project types.
Ludovic Chabant <ludovic@chabant.com>
parents: 88
diff changeset
419
136
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
420 *gutentags_file_list_command*
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
421 g:gutentags_file_list_command
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
422 Specifies command(s) to use to list files for which
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
423 tags should be generated, instead of recursively
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
424 examining all files within the project root. When
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
425 invoked, file list commands will execute in the
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
426 project root directory.
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
427
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
428 This setting is useful in projects using source
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
429 control to restrict tag generation to only files
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
430 tracked in the repository.
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
431
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
432 This variable may be set in one of two ways. If
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
433 set as a |String|, the specified command will be used to
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
434 list files for all projects. For example: >
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
435
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
436 let g:gutentags_file_list_command = 'find . -type f'
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
437 <
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
438 If set as a |Dictionary|, this variable should be set
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
439 as a mapping of project root markers to the desired
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
440 file list command for that root marker. (See
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
441 |gutentags_project_root| for how Gutentags uses root
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
442 markerts to locate the project.) For example: >
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
443
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
444 let g:gutentags_file_list_command = {
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
445 \ 'markers': {
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
446 \ '.git': 'git ls-files',
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
447 \ '.hg': 'hg locate',
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
448 \ },
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
449 \ }
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
450 <
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
451 Note: If a custom ctags executable is specified, it
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
452 must support the '-L' command line option in order to
286e5b3095d0 Allow restricting tag generation to files listed by custom commands
Stephen Kent <smkent@smkent.net>
parents: 132
diff changeset
453 read the list of files to be examined.
0
a3a37124558b Initial commit.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
454
49
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
455 =============================================================================
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
456 5. Project Settings *gutentags-project-settings*
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
457
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
458 Gutentags can be customized to some extent on a per-project basis with the
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
459 following files present in the project root directory:
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
460
74
cb1cf815052e Fix the documentation about the project settings file.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
461 *gutentags-.gutctags*
cb1cf815052e Fix the documentation about the project settings file.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
462 `.gutctags`: if this file exists, Ctags will be told to load additional
49
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
463 command-line parameters by reading it line by line (see the Ctags
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
464 documentation for more information).
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
465
74
cb1cf815052e Fix the documentation about the project settings file.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
466 Note that for complex reasons, Gutentags can't run `ctags` from the project
cb1cf815052e Fix the documentation about the project settings file.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
467 root if you're using |gutentags_cache_dir|, so if the `.gutctags` file exists,
cb1cf815052e Fix the documentation about the project settings file.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
468 it will be pre-processed in order to make all `--exclude=` clauses into
cb1cf815052e Fix the documentation about the project settings file.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
469 absolute paths (by prepending the project root). The resulting file will be
cb1cf815052e Fix the documentation about the project settings file.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
470 saved into the cache directory, and passed to `ctags` via the `--options=`
cb1cf815052e Fix the documentation about the project settings file.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
471 parameter. If you're _not_ using |gutentags_cache_dir|, the `.gutctags` file
cb1cf815052e Fix the documentation about the project settings file.
Ludovic Chabant <ludovic@chabant.com>
parents: 69
diff changeset
472 is _not_ pre-processed, and is passed as-is via the `--options=` parameter.
49
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
473
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
474 *gutentags-.notags*
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
475 `.notags`: if this file exists, Gutentags will be disabled completely for that
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
476 project.
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
477
70423c2202c5 Ctags options files changes
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
478
0
a3a37124558b Initial commit.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
479 vim:tw=78:et:ft=help:norl: