rubocop-sketchup 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +19 -19
  3. data/assets/output.html.erb +301 -301
  4. data/config/default.yml +355 -355
  5. data/lib/rubocop/sketchup/config.rb +63 -63
  6. data/lib/rubocop/sketchup/cop/deprecations/add_separator_to_menu.rb +25 -25
  7. data/lib/rubocop/sketchup/cop/deprecations/operation_next_transparent.rb +30 -30
  8. data/lib/rubocop/sketchup/cop/deprecations/require_all.rb +27 -27
  9. data/lib/rubocop/sketchup/cop/deprecations/set_texture_projection.rb +26 -26
  10. data/lib/rubocop/sketchup/cop/deprecations/show_ruby_panel.rb +25 -25
  11. data/lib/rubocop/sketchup/cop/deprecations/sketchup_set.rb +30 -30
  12. data/lib/rubocop/sketchup/cop/performance/openssl.rb +41 -41
  13. data/lib/rubocop/sketchup/cop/performance/operation_disable_ui.rb +33 -33
  14. data/lib/rubocop/sketchup/cop/performance/selection_bulk.rb +79 -79
  15. data/lib/rubocop/sketchup/cop/performance/type_check.rb +63 -63
  16. data/lib/rubocop/sketchup/cop/performance/typename.rb +24 -24
  17. data/lib/rubocop/sketchup/cop/requirements/api_namespace.rb +30 -30
  18. data/lib/rubocop/sketchup/cop/requirements/exit.rb +32 -32
  19. data/lib/rubocop/sketchup/cop/requirements/extension_namespace.rb +108 -108
  20. data/lib/rubocop/sketchup/cop/requirements/file_structure.rb +97 -97
  21. data/lib/rubocop/sketchup/cop/requirements/gem_install.rb +45 -45
  22. data/lib/rubocop/sketchup/cop/requirements/get_extension_license.rb +95 -95
  23. data/lib/rubocop/sketchup/cop/requirements/global_constants.rb +38 -38
  24. data/lib/rubocop/sketchup/cop/requirements/global_include.rb +42 -42
  25. data/lib/rubocop/sketchup/cop/requirements/global_methods.rb +65 -65
  26. data/lib/rubocop/sketchup/cop/requirements/global_variables.rb +95 -95
  27. data/lib/rubocop/sketchup/cop/requirements/language_handler_globals.rb +46 -46
  28. data/lib/rubocop/sketchup/cop/requirements/load_path.rb +83 -83
  29. data/lib/rubocop/sketchup/cop/requirements/minimal_registration.rb +73 -73
  30. data/lib/rubocop/sketchup/cop/requirements/observers_start_operation.rb +161 -161
  31. data/lib/rubocop/sketchup/cop/requirements/register_extension.rb +45 -45
  32. data/lib/rubocop/sketchup/cop/requirements/ruby_core_namespace.rb +291 -291
  33. data/lib/rubocop/sketchup/cop/requirements/ruby_stdlib_namespace.rb +634 -634
  34. data/lib/rubocop/sketchup/cop/requirements/shipped_extensions_namespace.rb +61 -61
  35. data/lib/rubocop/sketchup/cop/requirements/sketchup_extension.rb +119 -119
  36. data/lib/rubocop/sketchup/cop/requirements/sketchup_require.rb +163 -163
  37. data/lib/rubocop/sketchup/cop/suggestions/add_group.rb +49 -49
  38. data/lib/rubocop/sketchup/cop/suggestions/compatibility.rb +117 -117
  39. data/lib/rubocop/sketchup/cop/suggestions/dc_internals.rb +34 -34
  40. data/lib/rubocop/sketchup/cop/suggestions/file_encoding.rb +78 -78
  41. data/lib/rubocop/sketchup/cop/suggestions/model_entities.rb +58 -58
  42. data/lib/rubocop/sketchup/cop/suggestions/monkey_patched_api.rb +45 -45
  43. data/lib/rubocop/sketchup/cop/suggestions/operation_name.rb +103 -103
  44. data/lib/rubocop/sketchup/cop/suggestions/sketchup_find_support_file.rb +39 -39
  45. data/lib/rubocop/sketchup/cop/suggestions/tool_drawing_bounds.rb +44 -44
  46. data/lib/rubocop/sketchup/cop/suggestions/tool_invalidate.rb +66 -66
  47. data/lib/rubocop/sketchup/cop/suggestions/tool_user_input.rb +41 -41
  48. data/lib/rubocop/sketchup/cop/suggestions/toolbar_timer.rb +65 -65
  49. data/lib/rubocop/sketchup/cop.rb +111 -111
  50. data/lib/rubocop/sketchup/dc_globals.rb +24 -24
  51. data/lib/rubocop/sketchup/dc_methods.rb +130 -130
  52. data/lib/rubocop/sketchup/extension_project.rb +65 -65
  53. data/lib/rubocop/sketchup/features.rb +738 -738
  54. data/lib/rubocop/sketchup/formatter/extension_review.rb +259 -259
  55. data/lib/rubocop/sketchup/inject.rb +19 -19
  56. data/lib/rubocop/sketchup/namespace.rb +47 -47
  57. data/lib/rubocop/sketchup/namespace_checker.rb +46 -46
  58. data/lib/rubocop/sketchup/no_comment_disable.rb +17 -17
  59. data/lib/rubocop/sketchup/range_help.rb +52 -52
  60. data/lib/rubocop/sketchup/sketchup_version.rb +87 -87
  61. data/lib/rubocop/sketchup/tool_checker.rb +43 -43
  62. data/lib/rubocop/sketchup/version.rb +5 -5
  63. data/lib/rubocop/sketchup.rb +12 -12
  64. data/lib/rubocop-sketchup.rb +48 -48
  65. data/rubocop-sketchup.gemspec +27 -27
  66. metadata +4 -4
data/config/default.yml CHANGED
@@ -1,355 +1,355 @@
1
- # Common configuration.
2
-
3
- AllCops:
4
- SketchUp:
5
- # The path to the extension source. This needs to be correct in order to
6
- # correctly validate file structure.
7
- SourcePath: src
8
- # Set target SketchUp version. Compatibility checks can then warn if you
9
- # use features that belong to older SketchUp versions. Refer to the manual
10
- # for list of valid versions.
11
- TargetSketchUpVersion: 2016
12
- # Indicate if you plan to scramble/encrypt this extension using the .RBS or
13
- # .RBE format. It changes the technical requirements for requiring files.
14
- EncryptedExtension: false
15
- # Binary Ruby C Extension must always be loaded using Ruby's own `require`.
16
- # If you enable `AllCops/SketchUp/EncryptedExtension` you need to list
17
- # the require paths for your Ruby C Extensions if you have any.
18
- ExtensionBinaries: []
19
- # You can set up exclude pattens for all SketchUp departments.
20
- Exclude: []
21
- # Alternativly you can set up department wide exclusion.
22
- SketchupDeprecations:
23
- Exclude: []
24
- SketchupPerformance:
25
- Exclude: []
26
- SketchupRequirements:
27
- Exclude: []
28
- SketchupSuggestions:
29
- Exclude: []
30
-
31
-
32
- SketchupDeprecations/AddSeparatorToMenu:
33
- Description: The method `add_separator_to_menu` is deprecated.
34
- Details: >-
35
- Avoid adding separators to top level menus. If you require
36
- grouping use a sub-menu instead.
37
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#addseparatortomenu
38
- Enabled: true
39
-
40
- SketchupDeprecations/OperationNextTransparent:
41
- Description: Third argument in `model.start_operation` is deprecated.
42
- Details: >-
43
- It is not possible to predict what operation will come next. Avoid
44
- making the next operation transparent.
45
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#operationnexttransparent
46
- Enabled: true
47
-
48
- SketchupDeprecations/RequireAll:
49
- Description: The method `require_all` is deprecated.
50
- Details: >-
51
- This method adds the path given to `$LOAD_PATH` which can affect
52
- other extensions.
53
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#requireall
54
- Enabled: true
55
-
56
- SketchupDeprecations/SetTextureProjection:
57
- Description: The method `Sketchup::Face#set_texture_projection` is deprecated.
58
- Details: >-
59
- This method never worked right. It's not possible to control the
60
- position and orientation of the texture.
61
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#settextureprojection
62
- Enabled: true
63
-
64
- SketchupDeprecations/ShowRubyPanel:
65
- Description: The method `show_ruby_panel` is deprecated.
66
- Details: Use `SKETCHUP_CONSOLE.show` instead.
67
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#showrubypanel
68
- Enabled: true
69
-
70
- SketchupDeprecations/SketchupSet:
71
- Description: The class `Sketchup::Set` is deprecated.
72
- Details: >-
73
- It's slow and with limited functionality. Use the `Set` class in
74
- the Ruby StdLib instead.
75
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#sketchupset
76
- Enabled: true
77
-
78
-
79
- SketchupPerformance/OpenSSL:
80
- Description: Avoid using Ruby's OpenSSL within SketchUp.
81
- Details: >-
82
- A flaw in how it obtain random bits under Windows can severely
83
- affect performance, freezing SketchUp for many minutes. This also
84
- affects SecureRandom and anything else that depend on OpenSSL.
85
- Net::HTTP is affected if connecting via HTTPS. Connecting via
86
- plain HTTP is unaffected.
87
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#openssl
88
- Enabled: true
89
-
90
- SketchupPerformance/OperationDisableUI:
91
- Description: Operations should disable the UI for performance gain.
92
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#operationdisableui
93
- Enabled: true
94
-
95
- SketchupPerformance/SelectionBulkChanges:
96
- Description: >-
97
- Avoid modifying the selection set within loops. It's much
98
- faster to change the selection in bulk.
99
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#selectionbulkchanges
100
- Enabled: true
101
-
102
- SketchupPerformance/TypeCheck:
103
- Description: String comparisons for type checks are very slow.
104
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#typecheck
105
- Enabled: true
106
-
107
- SketchupPerformance/Typename:
108
- Description: Using `.typename` is very slow, prefer `.is_a?` instead.
109
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#typename
110
- Enabled: true
111
-
112
-
113
- SketchupRequirements/ApiNamespace:
114
- Description: Don't modify the SketchUp API namespace.
115
- Details: >-
116
- Modifying the API namespace could affect other extensions - making
117
- it hard for other developers to determine what is going on.
118
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#apinamespace
119
- Enabled: true
120
-
121
- SketchupRequirements/Exit:
122
- Description: Exit attempts to kill the Ruby interpreter.
123
- Details: >-
124
- SketchUp will trap `exit` and prevent that, with a message in the
125
- console. But `exit!` is not trapped and with terminate SketchUp
126
- without shutting down cleanly. Use `return`, `next` or `break`
127
- instead.
128
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#exit
129
- Enabled: true
130
-
131
- SketchupRequirements/ExtensionNamespace:
132
- Description: Confine extensions to a single root namespace.
133
- Details: >-
134
- To avoid clashing with other extensions a single root namespace
135
- should all the extension's code.
136
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#extensionnamespace
137
- Exceptions: []
138
- Enabled: true
139
-
140
- SketchupRequirements/FileStructure:
141
- Description: Expected extension file structure not found.
142
- Details: >-
143
- Check that the extension conform to expected file structure with a
144
- single root .rb file and a support folder with matching name.
145
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#filestructure
146
- Enabled: true
147
-
148
- SketchupRequirements/GemInstall:
149
- Description: >-
150
- Gem.install is unreliable in SketchUp, and can cause
151
- extensions to clash.
152
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#geminstall
153
- Enabled: true
154
-
155
- SketchupRequirements/GetExtensionLicense:
156
- Description: Pass in valid extension ID from local string literals.
157
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#getextensionlicense
158
- Enabled: true
159
-
160
- SketchupRequirements/GlobalConstants:
161
- Description: Do not introduce global constants.
162
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#globalconstants
163
- Enabled: true
164
-
165
- SketchupRequirements/GlobalInclude:
166
- Description: Do not include modules into global namespace.
167
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#globalinclude
168
- Enabled: true
169
-
170
- SketchupRequirements/GlobalMethods:
171
- Description: Extensions should not define global methods.
172
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#globalmethods
173
- Enabled: true
174
-
175
- SketchupRequirements/GlobalVariables:
176
- Description: Do not introduce global variables.
177
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#globalvariables
178
- Enabled: true
179
-
180
- SketchupRequirements/LanguageHandlerGlobals:
181
- Description: Don't use other known global variables.
182
- Details: >-
183
- Avoid using globals in general, but especially these which are
184
- known to be in use by other extensions made by SketchUp. They are
185
- still in use due to compatibility reasons.
186
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#languagehandlerglobals
187
- Enabled: true
188
-
189
- SketchupRequirements/LoadPath:
190
- Description: Do not modify the load path.
191
- Details: >-
192
- This can cause other extensions from not loading correctly. Always
193
- load files relative to the installation path for the extension.
194
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#loadpath
195
- Enabled: true
196
-
197
- SketchupRequirements/MinimalRegistration:
198
- Description: >-
199
- Don't load extension files in the root file registering the
200
- extension. Extensions should not load additional files when
201
- it's disabled.
202
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#minimalregistration
203
- Enabled: true
204
-
205
- SketchupRequirements/ObserversStartOperation:
206
- Description: Observers should create transparent operations.
207
- Details: >-
208
- When making model changes within an observer event, start a
209
- transparent operation to ensure a clean undo-stack.
210
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#observersstartoperation
211
- Enabled: true
212
-
213
- SketchupRequirements/RegisterExtension:
214
- Description: >-
215
- Always register extensions to load by default. Otherwise it
216
- might confuse users to think the extension isn't working.
217
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#registerextension
218
- Enabled: true
219
-
220
- SketchupRequirements/RequireToolsRubyFiles:
221
- Description: >-
222
- Due to how require and Sketchup.require checks whether a file
223
- has been loaded, files from SketchUp's Tools folder should be
224
- required in using `require` and with their file extension to
225
- avoid duplicate loading.
226
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#requiretoolsrubyfiles
227
- Enabled: true
228
-
229
- SketchupRequirements/RubyCoreNamespace:
230
- Description: Do not modify Ruby core functionality.
231
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#rubycorenamespace
232
- Enabled: true
233
-
234
- SketchupRequirements/RubyStdLibNamespace:
235
- Description: Do not modify Ruby stdlib functionality.
236
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#rubystdlibnamespace
237
- Enabled: true
238
-
239
- SketchupRequirements/SketchupRequire:
240
- Description: >-
241
- Omit file extensions when using `Sketchup.require` to allow
242
- encrypted files to be loaded.
243
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#sketchuprequire
244
- Enabled: true
245
-
246
- SketchupRequirements/ShippedExtensionsNamespace:
247
- Description: Don't use the namespace of SketchUp's shipped extensions.
248
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#shippedextensionsnamespace
249
- Enabled: true
250
-
251
- SketchupRequirements/SketchupExtension:
252
- Description: >-
253
- Register a single instance of SketchupExtension per extension.
254
- This should be done by the root .rb file in the extension
255
- package.
256
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#sketchupextension
257
- Enabled: true
258
-
259
-
260
- SketchupSuggestions/AddGroup:
261
- Description: Avoid creating groups out of existing entities.
262
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#addgroup
263
- Enabled: true
264
-
265
- SketchupSuggestions/Compatibility:
266
- Description: Incompatible feature with target SketchUp version.
267
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#compatibility
268
- Enabled: true
269
-
270
- SketchupSuggestions/DynamicComponentInternals:
271
- Description: >-
272
- Avoid relying on internal logic of Dynamic Components. It's
273
- behavior might change between versions.
274
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#dynamiccomponentinternals
275
- Enabled: true
276
-
277
- SketchupSuggestions/FileEncoding:
278
- Description: Beware encoding bug in Ruby when using `__FILE__` and `__dir__`.
279
- Details: >-
280
- When using `__FILE__` and `__dir__`, beware that Ruby doesn't
281
- apply the correct encoding to the strings under Windows. When they
282
- contain non-english characters it will lead to exceptions being
283
- raised when the strings are used. Force encoding to work around
284
- this.
285
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#fileencoding
286
- Enabled: true
287
-
288
- SketchupSuggestions/ModelEntities:
289
- Description: >-
290
- Typically one should use `model.active_entities` instead of
291
- `model.entities`.
292
- Details: >-
293
- In SketchUp the norm is that editing is performed in the opened
294
- instance (`model.active_entities`). `model.entities` refer to the
295
- model root.
296
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#modelentities
297
- Enabled: true
298
-
299
- SketchupSuggestions/MonkeyPatchedApi:
300
- Description: >-
301
- Avoid using monkey-patched methods from SketchUp's shipped
302
- extensions.
303
- Details: >-
304
- These methods stops working when the extensions are disabled and
305
- may change or be removed.
306
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#monkeypatchedapi
307
- Enabled: true
308
-
309
- SketchupSuggestions/OperationName:
310
- Description: >-
311
- Check that operation names are human friendly and consistent
312
- with SketchUp.
313
- Details: >-
314
- This check is very naive and might produce false positives. Use as
315
- guidance only.
316
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#operationname
317
- Max: 25
318
- Enabled: true
319
-
320
- SketchupSuggestions/SketchupFindSupportFile:
321
- Description: >-
322
- Avoid `Sketchup.find_support_file` to find your extension's
323
- files.
324
- Details: >-
325
- Extensions might be installed outside the SketchUp Plugins folder.
326
- Use `__FILE__` and `__dir__` to locate your files relative to the
327
- executing file.
328
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#sketchupfindsupportfile
329
- Enabled: true
330
-
331
- SketchupSuggestions/ToolDrawingBounds:
332
- Description: >-
333
- When drawing to the viewport implement `getExtents` so drawn
334
- geometry is not clipped.
335
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#tooldrawingbounds
336
- Enabled: true
337
-
338
- SketchupSuggestions/ToolInvalidate:
339
- Description: >-
340
- When drawing to the viewport, make sure tools invalidate when
341
- tool becomes inactive.
342
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#toolinvalidate
343
- Enabled: true
344
-
345
- SketchupSuggestions/ToolUserInput:
346
- Description: >-
347
- When a tool is accepting user input, make sure to define
348
- enableVCB?.
349
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#tooluserinput
350
- Enabled: true
351
-
352
- SketchupSuggestions/ToolbarTimer:
353
- Description: Wrapping `toolbar.restore` in `UI.start_timer` is redundant.
354
- Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#toolbartimer
355
- Enabled: true
1
+ # Common configuration.
2
+
3
+ AllCops:
4
+ SketchUp:
5
+ # The path to the extension source. This needs to be correct in order to
6
+ # correctly validate file structure.
7
+ SourcePath: src
8
+ # Set target SketchUp version. Compatibility checks can then warn if you
9
+ # use features that belong to older SketchUp versions. Refer to the manual
10
+ # for list of valid versions.
11
+ TargetSketchUpVersion: 2016
12
+ # Indicate if you plan to scramble/encrypt this extension using the .RBS or
13
+ # .RBE format. It changes the technical requirements for requiring files.
14
+ EncryptedExtension: false
15
+ # Binary Ruby C Extension must always be loaded using Ruby's own `require`.
16
+ # If you enable `AllCops/SketchUp/EncryptedExtension` you need to list
17
+ # the require paths for your Ruby C Extensions if you have any.
18
+ ExtensionBinaries: []
19
+ # You can set up exclude pattens for all SketchUp departments.
20
+ Exclude: []
21
+ # Alternativly you can set up department wide exclusion.
22
+ SketchupDeprecations:
23
+ Exclude: []
24
+ SketchupPerformance:
25
+ Exclude: []
26
+ SketchupRequirements:
27
+ Exclude: []
28
+ SketchupSuggestions:
29
+ Exclude: []
30
+
31
+
32
+ SketchupDeprecations/AddSeparatorToMenu:
33
+ Description: The method `add_separator_to_menu` is deprecated.
34
+ Details: >-
35
+ Avoid adding separators to top level menus. If you require
36
+ grouping use a sub-menu instead.
37
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#addseparatortomenu
38
+ Enabled: true
39
+
40
+ SketchupDeprecations/OperationNextTransparent:
41
+ Description: Third argument in `model.start_operation` is deprecated.
42
+ Details: >-
43
+ It is not possible to predict what operation will come next. Avoid
44
+ making the next operation transparent.
45
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#operationnexttransparent
46
+ Enabled: true
47
+
48
+ SketchupDeprecations/RequireAll:
49
+ Description: The method `require_all` is deprecated.
50
+ Details: >-
51
+ This method adds the path given to `$LOAD_PATH` which can affect
52
+ other extensions.
53
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#requireall
54
+ Enabled: true
55
+
56
+ SketchupDeprecations/SetTextureProjection:
57
+ Description: The method `Sketchup::Face#set_texture_projection` is deprecated.
58
+ Details: >-
59
+ This method never worked right. It's not possible to control the
60
+ position and orientation of the texture.
61
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#settextureprojection
62
+ Enabled: true
63
+
64
+ SketchupDeprecations/ShowRubyPanel:
65
+ Description: The method `show_ruby_panel` is deprecated.
66
+ Details: Use `SKETCHUP_CONSOLE.show` instead.
67
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#showrubypanel
68
+ Enabled: true
69
+
70
+ SketchupDeprecations/SketchupSet:
71
+ Description: The class `Sketchup::Set` is deprecated.
72
+ Details: >-
73
+ It's slow and with limited functionality. Use the `Set` class in
74
+ the Ruby StdLib instead.
75
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_deprecations.md#sketchupset
76
+ Enabled: true
77
+
78
+
79
+ SketchupPerformance/OpenSSL:
80
+ Description: Avoid using Ruby's OpenSSL within SketchUp.
81
+ Details: >-
82
+ A flaw in how it obtain random bits under Windows can severely
83
+ affect performance, freezing SketchUp for many minutes. This also
84
+ affects SecureRandom and anything else that depend on OpenSSL.
85
+ Net::HTTP is affected if connecting via HTTPS. Connecting via
86
+ plain HTTP is unaffected.
87
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#openssl
88
+ Enabled: true
89
+
90
+ SketchupPerformance/OperationDisableUI:
91
+ Description: Operations should disable the UI for performance gain.
92
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#operationdisableui
93
+ Enabled: true
94
+
95
+ SketchupPerformance/SelectionBulkChanges:
96
+ Description: >-
97
+ Avoid modifying the selection set within loops. It's much
98
+ faster to change the selection in bulk.
99
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#selectionbulkchanges
100
+ Enabled: true
101
+
102
+ SketchupPerformance/TypeCheck:
103
+ Description: String comparisons for type checks are very slow.
104
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#typecheck
105
+ Enabled: true
106
+
107
+ SketchupPerformance/Typename:
108
+ Description: Using `.typename` is very slow, prefer `.is_a?` instead.
109
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_performance.md#typename
110
+ Enabled: true
111
+
112
+
113
+ SketchupRequirements/ApiNamespace:
114
+ Description: Don't modify the SketchUp API namespace.
115
+ Details: >-
116
+ Modifying the API namespace could affect other extensions - making
117
+ it hard for other developers to determine what is going on.
118
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#apinamespace
119
+ Enabled: true
120
+
121
+ SketchupRequirements/Exit:
122
+ Description: Exit attempts to kill the Ruby interpreter.
123
+ Details: >-
124
+ SketchUp will trap `exit` and prevent that, with a message in the
125
+ console. But `exit!` is not trapped and with terminate SketchUp
126
+ without shutting down cleanly. Use `return`, `next` or `break`
127
+ instead.
128
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#exit
129
+ Enabled: true
130
+
131
+ SketchupRequirements/ExtensionNamespace:
132
+ Description: Confine extensions to a single root namespace.
133
+ Details: >-
134
+ To avoid clashing with other extensions a single root namespace
135
+ should all the extension's code.
136
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#extensionnamespace
137
+ Exceptions: []
138
+ Enabled: true
139
+
140
+ SketchupRequirements/FileStructure:
141
+ Description: Expected extension file structure not found.
142
+ Details: >-
143
+ Check that the extension conform to expected file structure with a
144
+ single root .rb file and a support folder with matching name.
145
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#filestructure
146
+ Enabled: true
147
+
148
+ SketchupRequirements/GemInstall:
149
+ Description: >-
150
+ Gem.install is unreliable in SketchUp, and can cause
151
+ extensions to clash.
152
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#geminstall
153
+ Enabled: true
154
+
155
+ SketchupRequirements/GetExtensionLicense:
156
+ Description: Pass in valid extension ID from local string literals.
157
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#getextensionlicense
158
+ Enabled: true
159
+
160
+ SketchupRequirements/GlobalConstants:
161
+ Description: Do not introduce global constants.
162
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#globalconstants
163
+ Enabled: true
164
+
165
+ SketchupRequirements/GlobalInclude:
166
+ Description: Do not include modules into global namespace.
167
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#globalinclude
168
+ Enabled: true
169
+
170
+ SketchupRequirements/GlobalMethods:
171
+ Description: Extensions should not define global methods.
172
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#globalmethods
173
+ Enabled: true
174
+
175
+ SketchupRequirements/GlobalVariables:
176
+ Description: Do not introduce global variables.
177
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#globalvariables
178
+ Enabled: true
179
+
180
+ SketchupRequirements/LanguageHandlerGlobals:
181
+ Description: Don't use other known global variables.
182
+ Details: >-
183
+ Avoid using globals in general, but especially these which are
184
+ known to be in use by other extensions made by SketchUp. They are
185
+ still in use due to compatibility reasons.
186
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#languagehandlerglobals
187
+ Enabled: true
188
+
189
+ SketchupRequirements/LoadPath:
190
+ Description: Do not modify the load path.
191
+ Details: >-
192
+ This can cause other extensions from not loading correctly. Always
193
+ load files relative to the installation path for the extension.
194
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#loadpath
195
+ Enabled: true
196
+
197
+ SketchupRequirements/MinimalRegistration:
198
+ Description: >-
199
+ Don't load extension files in the root file registering the
200
+ extension. Extensions should not load additional files when
201
+ it's disabled.
202
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#minimalregistration
203
+ Enabled: true
204
+
205
+ SketchupRequirements/ObserversStartOperation:
206
+ Description: Observers should create transparent operations.
207
+ Details: >-
208
+ When making model changes within an observer event, start a
209
+ transparent operation to ensure a clean undo-stack.
210
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#observersstartoperation
211
+ Enabled: true
212
+
213
+ SketchupRequirements/RegisterExtension:
214
+ Description: >-
215
+ Always register extensions to load by default. Otherwise it
216
+ might confuse users to think the extension isn't working.
217
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#registerextension
218
+ Enabled: true
219
+
220
+ SketchupRequirements/RequireToolsRubyFiles:
221
+ Description: >-
222
+ Due to how require and Sketchup.require checks whether a file
223
+ has been loaded, files from SketchUp's Tools folder should be
224
+ required in using `require` and with their file extension to
225
+ avoid duplicate loading.
226
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#requiretoolsrubyfiles
227
+ Enabled: true
228
+
229
+ SketchupRequirements/RubyCoreNamespace:
230
+ Description: Do not modify Ruby core functionality.
231
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#rubycorenamespace
232
+ Enabled: true
233
+
234
+ SketchupRequirements/RubyStdLibNamespace:
235
+ Description: Do not modify Ruby stdlib functionality.
236
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#rubystdlibnamespace
237
+ Enabled: true
238
+
239
+ SketchupRequirements/SketchupRequire:
240
+ Description: >-
241
+ Omit file extensions when using `Sketchup.require` to allow
242
+ encrypted files to be loaded.
243
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#sketchuprequire
244
+ Enabled: true
245
+
246
+ SketchupRequirements/ShippedExtensionsNamespace:
247
+ Description: Don't use the namespace of SketchUp's shipped extensions.
248
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#shippedextensionsnamespace
249
+ Enabled: true
250
+
251
+ SketchupRequirements/SketchupExtension:
252
+ Description: >-
253
+ Register a single instance of SketchupExtension per extension.
254
+ This should be done by the root .rb file in the extension
255
+ package.
256
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_requirements.md#sketchupextension
257
+ Enabled: true
258
+
259
+
260
+ SketchupSuggestions/AddGroup:
261
+ Description: Avoid creating groups out of existing entities.
262
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#addgroup
263
+ Enabled: true
264
+
265
+ SketchupSuggestions/Compatibility:
266
+ Description: Incompatible feature with target SketchUp version.
267
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#compatibility
268
+ Enabled: true
269
+
270
+ SketchupSuggestions/DynamicComponentInternals:
271
+ Description: >-
272
+ Avoid relying on internal logic of Dynamic Components. It's
273
+ behavior might change between versions.
274
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#dynamiccomponentinternals
275
+ Enabled: true
276
+
277
+ SketchupSuggestions/FileEncoding:
278
+ Description: Beware encoding bug in Ruby when using `__FILE__` and `__dir__`.
279
+ Details: >-
280
+ When using `__FILE__` and `__dir__`, beware that Ruby doesn't
281
+ apply the correct encoding to the strings under Windows. When they
282
+ contain non-english characters it will lead to exceptions being
283
+ raised when the strings are used. Force encoding to work around
284
+ this.
285
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#fileencoding
286
+ Enabled: true
287
+
288
+ SketchupSuggestions/ModelEntities:
289
+ Description: >-
290
+ Typically one should use `model.active_entities` instead of
291
+ `model.entities`.
292
+ Details: >-
293
+ In SketchUp the norm is that editing is performed in the opened
294
+ instance (`model.active_entities`). `model.entities` refer to the
295
+ model root.
296
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#modelentities
297
+ Enabled: true
298
+
299
+ SketchupSuggestions/MonkeyPatchedApi:
300
+ Description: >-
301
+ Avoid using monkey-patched methods from SketchUp's shipped
302
+ extensions.
303
+ Details: >-
304
+ These methods stops working when the extensions are disabled and
305
+ may change or be removed.
306
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#monkeypatchedapi
307
+ Enabled: true
308
+
309
+ SketchupSuggestions/OperationName:
310
+ Description: >-
311
+ Check that operation names are human friendly and consistent
312
+ with SketchUp.
313
+ Details: >-
314
+ This check is very naive and might produce false positives. Use as
315
+ guidance only.
316
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#operationname
317
+ Max: 25
318
+ Enabled: true
319
+
320
+ SketchupSuggestions/SketchupFindSupportFile:
321
+ Description: >-
322
+ Avoid `Sketchup.find_support_file` to find your extension's
323
+ files.
324
+ Details: >-
325
+ Extensions might be installed outside the SketchUp Plugins folder.
326
+ Use `__FILE__` and `__dir__` to locate your files relative to the
327
+ executing file.
328
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#sketchupfindsupportfile
329
+ Enabled: true
330
+
331
+ SketchupSuggestions/ToolDrawingBounds:
332
+ Description: >-
333
+ When drawing to the viewport implement `getExtents` so drawn
334
+ geometry is not clipped.
335
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#tooldrawingbounds
336
+ Enabled: true
337
+
338
+ SketchupSuggestions/ToolInvalidate:
339
+ Description: >-
340
+ When drawing to the viewport, make sure tools invalidate when
341
+ tool becomes inactive.
342
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#toolinvalidate
343
+ Enabled: true
344
+
345
+ SketchupSuggestions/ToolUserInput:
346
+ Description: >-
347
+ When a tool is accepting user input, make sure to define
348
+ enableVCB?.
349
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#tooluserinput
350
+ Enabled: true
351
+
352
+ SketchupSuggestions/ToolbarTimer:
353
+ Description: Wrapping `toolbar.restore` in `UI.start_timer` is redundant.
354
+ Reference: https://github.com/SketchUp/rubocop-sketchup/tree/master/manual/cops_suggestions.md#toolbartimer
355
+ Enabled: true