forked from quarnster/SublimeClang
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSublimeClang.sublime-settings
344 lines (301 loc) · 13.5 KB
/
SublimeClang.sublime-settings
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
{
// All options in here can also be specified in your project settings
// with a prepended "sublimeclang_" for example if you have
//
// "settings":
// {
// "sublimeclang_show_visual_error_marks": false
// }
//
// in your project settings, this will override the settings specified
// in this file and in your user settings.
// Whether or not the plugin is enabled. Useful if you want to disable
// the plugin completely for a specific project.
"enabled": true,
// Whether or not to automatically trigger the auto complete
// window when typing object., object-> or similar.
"automatic_completion_popup": true,
// Number of worker threads to create. If set to -1 it'll create
// one thread per cpu
"worker_threadcount": -1,
// Whether or not fast completions are enabled. Usually you'd put
// "sublimeclang_enable_fast_completions": false, in the project
// settings if it's problematic in that project. You can also
// runtime toggle fast completions alt+d,alt+f, however if it
// is disabled for the current project (or globally in your
// user settings) it will not be enabled. In other words
// this setting, when set to false, overrides whatever the
// keyboard toggle is set to.
"enable_fast_completions": true,
// Delay in ms until recompiling the file after the buffer is modified
// Set to 0 to disable.
// You probably also want to change the reparse_use_dirty_buffer
"recompile_delay": 0,
// Whether or not to hide the clang output panel when it's empty
"hide_output_when_empty": false,
// Whether or not to automatically show the output panel.
// If set to false, the default key-binding alt+d,alt+p
// will show it
"show_output_panel": true,
// When set to true, the output panel will be updated with the active
// view's errors/warnings as it is switched to. If set to false you will
// have to switch to the view you want to get the errors/warnings for
// and press alt+d,alt+f to hide and then display the panel for it
// to refresh its contents
"update_output_panel": true,
// Whether to apply a tmLanguage syntax file to the output panel
"output_panel_use_syntax_file": true,
// Specify syntax file for output panel
"output_panel_syntax_file": "Packages/SublimeClang/ErrorPanel.tmLanguage",
// Whether or not to show the clang parser status in the status bar
"show_status": true,
// When set to true, will display visual error markers.
"show_visual_error_marks": true,
// When set to true, error marks will only be displayed when the error
// panel is showing
"error_marks_on_panel_only": false,
// This is the bitmask sent to index.parse.
// For example, to be able to go to the definition of
// preprocessed macros, set it to 1, for using an implicit
// precompiled header set it to 4 and for caching completion
// results, set it to 8. Or all together 1+4+8=13.
//
// See http://clang.llvm.org/doxygen/group__CINDEX__TRANSLATION__UNIT.html#gab1e4965c1ebe8e41d71e90203a723fe9
// and http://clang.llvm.org/doxygen/Index_8h_source.html
// for more details
"index_parse_options": 13,
// If set to false, the main thread will lock while parsing
// the file, but commands will work the first time they are
// executed rather than the first time after warm up has
// finished
"warm_up_in_separate_thread": true,
// If set to true will warm up the cache for supported files
// when they are opened
"cache_on_load": true,
// If set to true will remove the file from the cache when
// it is closed
"remove_on_close": true,
// If set to true will pop the file from the navigation stack
// (automatic alt+d,alt+b) when the file is closed
"pop_on_close": true,
// When set to true a reparse command will be triggered
// when a view is activated
"reparse_on_activated": true,
// When set to true a reparse command will be triggered
// when a view is saved
"reparse_on_save": true,
// Whether to use the saved file or the (possibly) dirty buffer contents when reparsing
"reparse_use_dirty_buffer": false,
// When set to true will display parse status messages
"parse_status_messages": true,
// When set to true will display analyzer status messages
"analyzer_status_messages": true,
// Scope used for markers in the clang output panel
"marker_output_panel_scope": "invalid",
// Scope used for warning markers
"marker_warning_scope": "comment",
// Scope used for error markers
"marker_error_scope": "invalid",
// Whether or not to print out timing information for the complete operation
"time_completions": false,
// Whether or not to inhibit the Sublime Text 2 built in word completions
"inhibit_sublime_completions": true,
// Don't show stuff in the autocomplete list when the name starts with the following
"dont_complete_startswith":
[
"~",
"operator"
],
// If set to true it'll add for example "-x c++" to the options for c++ files
"add_language_option": true,
// Additional language specific options for clang.
// This option only works when "add_language_option" is set to true.
"additional_language_options":
{
// For example, you can use "c++": ["-std=c++11"] to enable C++11 features.
"c++" : [],
"c": [],
"objc": [],
"objc++": []
},
// Any options you want to give to clang
// This can also be specified as project specific options. Choose the menu item
// Project->Edit Project, and then add something like the following to the
// "settings" section:
//
// "sublimeclang_options":
// [
// "-I/project/specific/path/1",
// "-I/project/specific/path/2"
// ]
//
// If your project does not have a settings section it would look like this:
//
// "settings":
// {
// "sublimeclang_options":
// [
// "-I/project/specific/path/1",
// "-I/project/specific/path/2"
// ]
// }
//
// If "sublimeclang_options" exists in your project settings, it'll override
// rather than add to the "options" defined in SublimeClang.sublime-settings.
//
// Note that the project settings aren't applied for already cached files,
// so to make them take effect you'll have to clear the cache first. The
// default keybinding for clearing the cache is alt+d,alt+c.
//
// ${home}, ${env:<variable>}, ${project_path}, ${project_path:} and ${folder:} tokens can be
// used in these options.
//
// ${home} is replaced with the value of the HOME environment variable.
//
// ${env:<variable>} is replaced with the "variable" environment variable.
//
// ${project_path} returns the directory of the project for the current file or current window. In
// Sublime Text 2 where no associated project information available, the first folder containing a
// sublime-project file opened will be chosen.
//
// ${project_path:} tries to find a file with the given name in all the registered project folders and
// returns the first file found, or the original file name if none is found.
// Example: ${project_path:main.cpp} tries to find a file named "main.cpp" relative
// to the current project's folders. If none is found, it is replaced with "main.cpp".
//
// ${folder:} is replaced with the dirname of the given path.
// Example: ${folder:/path/to/file} is replaced with "/path/to".
//
// ${this_file_path} is replaced by the path to currently edited file.
// Example: ${this_file_path} is replaced with "/path/to" when edited file is "/path/to/file".
//
// Replacement is done sequentially, first all ${project_path:} are resolved, then ${home} and
// ${env:<variable>} tokens, and the ${folder:} are replaced, and then the ${this_file_path}.
//
// So for example, you might specify:
// "-I${folder:${project_path:main.cpp}}",
// "-I${folder:${project_path:main.cpp}}/includepath",
// "-I${folder:${project_path:main.cpp}}/anotherincludepath"
//
// And it will expand into:
// "-I<path of the project folder containing main.cpp>",
// "-I<path of the project folder containing main.cpp>/includepath",
// "-I<path of the project folder containing main.cpp>/anotherincludepath"
//
//
//
// You can also add an '*' or '**' to the end of a path.
// '*' will include all the subdirectories (non-recursive) of that path (not including the given path)
// '**' will expand to include all subdirectories recursively (not including the given path)
//
// Both with ignore any directories that begin with '.', but you can still specify those manually
//
//
// For example, imagine we had a directory structure like so:
//
// myproject/myproject.sublime-project
// myproject/src
// myproject/src/.hidden-dir
// myproject/src/ModuleA
// myproject/src/ModuleB
// myproject/src/ModuleC/SubmoduleC-A
// myproject/src/ModuleC/SubmoduleC-B
// myproject/includes
// myproject/includes/something
// myproject/includes/somethingelse
// myproject/includes/morethings
// myproject/includes/evenmorethings/asdf
//
//
// an option like this:
// "-I${folder:${project_path:myproject.sublime-project}}/src/**",
//
// will expand to:
// "-I/path/to/myproject/src/ModuleA",
// "-I/path/to/myproject/src/ModuleB",
// "-I/path/to/myproject/src/ModuleC/SubmoduleC-A",
// "-I/path/to/myproject/src/ModuleC/SubmoduleC-B",
//
// Note that src and .hidden-dir were skipped
//
//
// an option like this:
// "-I${folder:${project_path:myproject.sublime-project}}/includes/*",
// will expand to:
// "-I/path/to/myproject/includes/something",
// "-I/path/to/myproject/includes/somethingelse",
// "-I/path/to/myproject/includes/morethings",
// "-I/path/to/myproject/includes/evenmorethings",
//
// Notice that the both the myproject/includes directory and any directories more than one level deep are skipped
//
// Set "debug_options" (defined below) to true to print the final options used for compilation to the python console
//
// For help getting up and running with MinGW see https://github.com/quarnster/SublimeClang/issues/122
// For help getting up and running with the AVR toolchain see https://github.com/quarnster/SublimeClang/issues/134
// For help getting up and running with iOS development see https://github.com/quarnster/SublimeClang/issues/52
"options":
[
"-isystem", "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/",
"-isystem", "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/usr/include/c++/4.2.1",
"-F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/",
"-Wno-deprecated-declarations",
"-isystem", "C:\\MinGW\\lib\\gcc\\mingw32\\4.7.0\\include",
"-isystem", "C:\\MinGW\\lib\\gcc\\mingw32\\4.7.0\\include\\c++",
"-isystem", "C:\\MinGW\\lib\\gcc\\mingw32\\4.7.0\\include\\c++\\mingw32",
"-isystem", "C:\\MinGW\\include",
"-isystem", "/usr/include",
"-isystem", "/usr/include/c++/*",
"-Wall"
],
// A command that can be run to fetch actual options for a source file in a build system.
// The script should print on stdout a list of space or newline separated options
// that will be appended to the static list in "options".
//
// This setting will also have its ${home}, ${project_path:} and ${folder:} tokens expanded
// and can be configured in project files.
//
// Example:
// "${project_path:scriptName.sh} someArgument1 someArgument2"
// if scriptName.sh is present under the project's folders, will be executed as:
// "/path/to/scriptName.sh someArgument1 someArgument2 currentViewFileName"
// before each time a file needs to be parsed by clang.
//
// An example options script for loading the exact compilation commands from
// a CMake json database is available at https://gist.github.com/3944250.
"options_script": "",
// If set to true, it'll not prepend the compiler options with the path to the
// included headers
"dont_prepend_clang_includes": false,
// When set to true will output the final options used to the python console
"debug_options": false,
// Scope used for markers in the clang output panel
"marker_analyzer_output_panel_scope": "invalid",
// Scope used for markers by the analyzer in the file views
"marker_analyzer_scope": "invalid",
// Command line used to invoke the static analyzer.
// "options" will be appended to this
"analyzer_commandline":
[
"clang",
"--analyze",
"-o",
"-"
],
// Extensions to be scanned by the static analyzer
// when analyzing a project
"analyzer_extensions":
[
"cpp",
"c",
"cc",
"m",
"mm"
],
// All diagnostic errors from files in these directories or below will be ignored
"diagnostic_ignore_dirs":
[
],
// Diagnostic errors/warnings matching this regex pattern will be ignored
"diagnostic_ignore_regex": "pragma once in main file"
}