canopus 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +55 -0
  3. data/README.md +191 -19
  4. data/assets/keymaps/emacs.jsonc +5 -0
  5. data/assets/keymaps/jetbrains.jsonc +5 -0
  6. data/assets/keymaps/sublime.jsonc +5 -0
  7. data/assets/keymaps/vscode.jsonc +5 -0
  8. data/docs/debugging.md +143 -0
  9. data/docs/distribution.md +40 -9
  10. data/docs/lsp.md +131 -0
  11. data/docs/performance.md +18 -0
  12. data/docs/providers.md +36 -0
  13. data/docs/release-log.md +12 -0
  14. data/docs/tasks.md +64 -0
  15. data/docs/testing.md +49 -0
  16. data/docs/vim.md +3 -0
  17. data/exe/canopus +4 -1
  18. data/lib/canopus/buffer.rb +291 -50
  19. data/lib/canopus/cli.rb +5 -2
  20. data/lib/canopus/command.rb +13 -4
  21. data/lib/canopus/controller.rb +183 -40
  22. data/lib/canopus/debug/breakpoints.rb +550 -0
  23. data/lib/canopus/debug/configuration.rb +291 -0
  24. data/lib/canopus/debug/console.rb +243 -0
  25. data/lib/canopus/debug/panel.rb +487 -0
  26. data/lib/canopus/debug/session.rb +354 -0
  27. data/lib/canopus/decoration.rb +4 -2
  28. data/lib/canopus/denebola_compat.rb +27 -0
  29. data/lib/canopus/diagnostics.rb +173 -0
  30. data/lib/canopus/display_map/overlay_map.rb +6 -2
  31. data/lib/canopus/editor/snippet_expandable.rb +3 -2
  32. data/lib/canopus/editor.rb +122 -31
  33. data/lib/canopus/git/state.rb +100 -0
  34. data/lib/canopus/language/background_analysis.rb +93 -14
  35. data/lib/canopus/language/document.rb +70 -34
  36. data/lib/canopus/language/symbol.rb +1 -0
  37. data/lib/canopus/language/syntax_worker.rb +61 -9
  38. data/lib/canopus/language.rb +3 -0
  39. data/lib/canopus/minimap.rb +201 -0
  40. data/lib/canopus/patch.rb +3 -1
  41. data/lib/canopus/plugins/api.rb +4 -2
  42. data/lib/canopus/plugins/isolated_runtime.rb +64 -7
  43. data/lib/canopus/plugins/registry.rb +114 -3
  44. data/lib/canopus/plugins.rb +8 -7
  45. data/lib/canopus/project.rb +15 -6
  46. data/lib/canopus/provider.rb +192 -0
  47. data/lib/canopus/regexp_compat.rb +36 -4
  48. data/lib/canopus/selection.rb +12 -0
  49. data/lib/canopus/settings/schema.rb +201 -0
  50. data/lib/canopus/settings.rb +328 -49
  51. data/lib/canopus/task/configuration.rb +356 -0
  52. data/lib/canopus/task/problem_matcher.rb +264 -0
  53. data/lib/canopus/task/runner.rb +314 -0
  54. data/lib/canopus/test_runner/bounded_ignore.rb +144 -0
  55. data/lib/canopus/test_runner/discovery.rb +97 -0
  56. data/lib/canopus/test_runner/execution.rb +194 -0
  57. data/lib/canopus/test_runner/minitest.rb +116 -0
  58. data/lib/canopus/test_runner/rspec.rb +103 -0
  59. data/lib/canopus/test_runner/safe_walker.rb +37 -0
  60. data/lib/canopus/test_runner.rb +54 -0
  61. data/lib/canopus/theme/import.rb +131 -0
  62. data/lib/canopus/theme.rb +28 -4
  63. data/lib/canopus/version.rb +1 -1
  64. data/lib/canopus/vim/motionable.rb +1 -1
  65. data/lib/canopus/vim.rb +10 -16
  66. data/lib/canopus/workspace/auto_savable.rb +83 -0
  67. data/lib/canopus/workspace/debug_aware.rb +600 -0
  68. data/lib/canopus/workspace/edit/plan.rb +2 -2
  69. data/lib/canopus/workspace/editor_configurable.rb +113 -0
  70. data/lib/canopus/workspace/file_change_aware.rb +11 -3
  71. data/lib/canopus/workspace/git_aware.rb +80 -34
  72. data/lib/canopus/workspace/git_blame.rb +175 -0
  73. data/lib/canopus/workspace/git_conflict_resolution.rb +410 -0
  74. data/lib/canopus/workspace/git_diff_view.rb +641 -0
  75. data/lib/canopus/workspace/git_history.rb +171 -0
  76. data/lib/canopus/workspace/git_remote.rb +267 -0
  77. data/lib/canopus/workspace/git_staging.rb +583 -0
  78. data/lib/canopus/workspace/hierarchy_aware.rb +477 -0
  79. data/lib/canopus/workspace/keymap_aware.rb +66 -0
  80. data/lib/canopus/workspace/language_aware.rb +3721 -135
  81. data/lib/canopus/workspace/language_server_configurable.rb +287 -71
  82. data/lib/canopus/workspace/persistent_undo.rb +169 -0
  83. data/lib/canopus/workspace/problems_aware.rb +131 -0
  84. data/lib/canopus/workspace/project_searchable.rb +88 -11
  85. data/lib/canopus/workspace/project_tree_editable.rb +3 -1
  86. data/lib/canopus/workspace/recoverable.rb +204 -0
  87. data/lib/canopus/workspace/session_persistable.rb +85 -13
  88. data/lib/canopus/workspace/settings_aware.rb +76 -2
  89. data/lib/canopus/workspace/task_aware.rb +194 -0
  90. data/lib/canopus/workspace/test_aware.rb +394 -0
  91. data/lib/canopus/workspace/trust.rb +73 -0
  92. data/lib/canopus/workspace/view/terminal_presentable.rb +298 -47
  93. data/lib/canopus/workspace/view.rb +399 -74
  94. data/lib/canopus/workspace.rb +688 -44
  95. data/lib/canopus.rb +20 -2
  96. data/sig/canopus.rbs +138 -31
  97. data/sig/controller.rbs +10 -3
  98. data/sig/debug.rbs +121 -0
  99. data/sig/decoration.rbs +12 -2
  100. data/sig/diagnostics.rbs +26 -0
  101. data/sig/minimap.rbs +20 -0
  102. data/sig/provider.rbs +29 -0
  103. data/sig/services.rbs +1 -16
  104. data/sig/task.rbs +92 -0
  105. data/sig/test_runner.rbs +109 -0
  106. data/sig/trust.rbs +17 -0
  107. data/sig/workspace_edits.rbs +2 -2
  108. data/sig/workspace_services.rbs +234 -2
  109. data/tools/check_dependencies.rb +21 -2
  110. data/tools/package.rb +172 -14
  111. data/tools/package_signature_test.rb +33 -0
  112. data/tools/package_test.rb +29 -0
  113. data/tools/sign_package.rb +123 -0
  114. data/tools/update.rb +189 -0
  115. data/tools/update_test.rb +71 -0
  116. metadata +206 -31
  117. data/lib/canopus/lsp/client.rb +0 -307
  118. data/lib/canopus/lsp/error.rb +0 -7
  119. data/lib/canopus/lsp/future/subscription.rb +0 -9
  120. data/lib/canopus/lsp/future.rb +0 -87
  121. data/lib/canopus/lsp/protocol.rb +0 -83
  122. data/lib/canopus/lsp/server_error.rb +0 -13
  123. data/lib/canopus/lsp/timeout.rb +0 -7
  124. data/lib/canopus/lsp/transport.rb +0 -123
  125. data/lib/canopus/lsp.rb +0 -19
  126. data/lib/canopus/project/search.rb +0 -164
  127. data/lib/canopus/project/search_worker/cancelled.rb +0 -3
  128. data/lib/canopus/project/search_worker/runner.rb +0 -9
  129. data/lib/canopus/project/search_worker.rb +0 -108
  130. data/lib/canopus/terminal/cell.rb +0 -7
  131. data/lib/canopus/terminal/grid.rb +0 -321
  132. data/lib/canopus/terminal/pty.rb +0 -178
  133. data/lib/canopus/terminal/scrollback.rb +0 -38
  134. data/lib/canopus/terminal/vt.rb +0 -398
  135. data/lib/canopus/terminal.rb +0 -13
  136. data/sig/lsp.rbs +0 -99
  137. data/sig/terminal.rbs +0 -130
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "digest"
4
+ require "fileutils"
5
+ require "json"
6
+ require "openssl"
7
+ require "rubygems/package"
8
+ require "tmpdir"
9
+ require "zlib"
10
+ require_relative "update"
11
+
12
+ def archive_package(path, files)
13
+ Zlib::GzipWriter.open(path) do |gzip|
14
+ Gem::Package::TarWriter.new(gzip) do |tar|
15
+ files.each do |name, contents|
16
+ tar.add_file_simple(name, 0o644, contents.bytesize) { |entry| entry.write(contents) }
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ Dir.mktmpdir("canopus-update-") do |directory|
23
+ key = OpenSSL::PKey::RSA.new(2048)
24
+ public_key = File.join(directory, "public.pem")
25
+ File.write(public_key, key.public_key.to_pem)
26
+ archive = File.join(directory, "package.tar.gz")
27
+ files = {"package.json" => '{"name":"canopus","version":"0.5.0"}\n', "manifest.json" => '{"version":"0.5.0","algorithm":"SHA-256","files":{}}\n'}
28
+ archive_package(archive, files)
29
+ feed = {"channel" => "stable", "platform" => "linux", "version" => "0.5.0", "url" => "https://example.invalid/package.tar.gz",
30
+ "size" => File.size(archive), "sha256" => Digest::SHA256.file(archive).hexdigest}
31
+ feed["key_id"] = Digest::SHA256.hexdigest(key.public_key.to_der)
32
+ feed["signature"] = Base64.strict_encode64(key.sign(OpenSSL::Digest::SHA256.new, CanopusUpdater.signed_payload(feed)))
33
+ raise "feed check failed" unless CanopusUpdater.check(feed, public_key: public_key, channel: "stable", platform: "linux", current_version: "0.4.0") == feed
34
+ begin
35
+ old_feed = feed.merge("version" => "0.4.0")
36
+ old_feed["signature"] = Base64.strict_encode64(key.sign(OpenSSL::Digest::SHA256.new, CanopusUpdater.signed_payload(old_feed)))
37
+ CanopusUpdater.check(old_feed, public_key: public_key, channel: "stable", platform: "linux", current_version: "0.4.0")
38
+ raise "old feed accepted"
39
+ rescue CanopusUpdater::Error
40
+ # Expected: the signature no longer matches the modified version.
41
+ end
42
+
43
+ install = File.join(directory, "installed")
44
+ FileUtils.mkdir_p(install)
45
+ File.write(File.join(install, "old.txt"), "old")
46
+ staged = File.join(directory, "staged")
47
+ CanopusUpdater.send(:extract, archive, staged)
48
+ CanopusUpdater.send(:replace, install, staged)
49
+ raise "update was not activated" unless File.read(File.join(install, "package.json")).include?("0.5.0")
50
+ raise "rollback fixture missing" unless !File.exist?(File.join(install, "old.txt"))
51
+
52
+ rollback = File.join(directory, "rollback")
53
+ FileUtils.mkdir_p(rollback)
54
+ File.write(File.join(rollback, "old.txt"), "old")
55
+ begin
56
+ CanopusUpdater.send(:replace, rollback, File.join(directory, "missing-stage"))
57
+ raise "failed activation was accepted"
58
+ rescue CanopusUpdater::Error
59
+ raise "rollback did not restore install" unless File.read(File.join(rollback, "old.txt")) == "old"
60
+ end
61
+
62
+ unsafe_archive = File.join(directory, "unsafe.tar.gz")
63
+ archive_package(unsafe_archive, {"../escaped.txt" => "nope"})
64
+ begin
65
+ CanopusUpdater.send(:extract, unsafe_archive, File.join(directory, "unsafe"))
66
+ raise "unsafe archive was accepted"
67
+ rescue CanopusUpdater::Error
68
+ raise "archive escaped staging directory" if File.exist?(File.join(directory, "escaped.txt"))
69
+ end
70
+ end
71
+ puts "Update feed verification and staged replacement passed."
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canopus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yudai Takada
@@ -24,7 +24,7 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: 0.2.0
26
26
  - !ruby/object:Gem::Dependency
27
- name: antares
27
+ name: alkaid
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
@@ -37,22 +37,78 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: 0.1.0
40
+ - !ruby/object:Gem::Dependency
41
+ name: antares
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.2.1
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.2.1
40
54
  - !ruby/object:Gem::Dependency
41
55
  name: denebola
42
56
  requirement: !ruby/object:Gem::Requirement
43
57
  requirements:
44
58
  - - "~>"
45
59
  - !ruby/object:Gem::Version
46
- version: 0.1.0
60
+ version: 0.2.1
47
61
  type: :runtime
48
62
  prerelease: false
49
63
  version_requirements: !ruby/object:Gem::Requirement
50
64
  requirements:
51
65
  - - "~>"
52
66
  - !ruby/object:Gem::Version
53
- version: 0.1.0
67
+ version: 0.2.1
68
+ - !ruby/object:Gem::Dependency
69
+ name: editorconfig
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 0.2.2
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 0.2.2
54
82
  - !ruby/object:Gem::Dependency
55
83
  name: kochab
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.2.0
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 0.2.0
96
+ - !ruby/object:Gem::Dependency
97
+ name: megrez
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 0.1.1
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 0.1.1
110
+ - !ruby/object:Gem::Dependency
111
+ name: menkar
56
112
  requirement: !ruby/object:Gem::Requirement
57
113
  requirements:
58
114
  - - "~>"
@@ -71,14 +127,14 @@ dependencies:
71
127
  requirements:
72
128
  - - "~>"
73
129
  - !ruby/object:Gem::Version
74
- version: 0.1.0
130
+ version: 0.2.0
75
131
  type: :runtime
76
132
  prerelease: false
77
133
  version_requirements: !ruby/object:Gem::Requirement
78
134
  requirements:
79
135
  - - "~>"
80
136
  - !ruby/object:Gem::Version
81
- version: 0.1.0
137
+ version: 0.2.0
82
138
  - !ruby/object:Gem::Dependency
83
139
  name: prism
84
140
  requirement: !ruby/object:Gem::Requirement
@@ -93,6 +149,26 @@ dependencies:
93
149
  - - "~>"
94
150
  - !ruby/object:Gem::Version
95
151
  version: '1.0'
152
+ - !ruby/object:Gem::Dependency
153
+ name: rexml
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '3.2'
159
+ - - "<"
160
+ - !ruby/object:Gem::Version
161
+ version: '4'
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '3.2'
169
+ - - "<"
170
+ - !ruby/object:Gem::Version
171
+ version: '4'
96
172
  - !ruby/object:Gem::Dependency
97
173
  name: rouge
98
174
  requirement: !ruby/object:Gem::Requirement
@@ -107,6 +183,34 @@ dependencies:
107
183
  - - "~>"
108
184
  - !ruby/object:Gem::Version
109
185
  version: '5.0'
186
+ - !ruby/object:Gem::Dependency
187
+ name: sadr
188
+ requirement: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - "~>"
191
+ - !ruby/object:Gem::Version
192
+ version: 0.2.0
193
+ type: :runtime
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: 0.2.0
200
+ - !ruby/object:Gem::Dependency
201
+ name: saiph
202
+ requirement: !ruby/object:Gem::Requirement
203
+ requirements:
204
+ - - "~>"
205
+ - !ruby/object:Gem::Version
206
+ version: 0.1.0
207
+ type: :runtime
208
+ prerelease: false
209
+ version_requirements: !ruby/object:Gem::Requirement
210
+ requirements:
211
+ - - "~>"
212
+ - !ruby/object:Gem::Version
213
+ version: 0.1.0
110
214
  - !ruby/object:Gem::Dependency
111
215
  name: spica
112
216
  requirement: !ruby/object:Gem::Requirement
@@ -121,20 +225,54 @@ dependencies:
121
225
  - - "~>"
122
226
  - !ruby/object:Gem::Version
123
227
  version: 0.1.0
228
+ - !ruby/object:Gem::Dependency
229
+ name: tarazed
230
+ requirement: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - "~>"
233
+ - !ruby/object:Gem::Version
234
+ version: 0.2.4
235
+ type: :runtime
236
+ prerelease: false
237
+ version_requirements: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
240
+ - !ruby/object:Gem::Version
241
+ version: 0.2.4
124
242
  - !ruby/object:Gem::Dependency
125
243
  name: thuban
126
244
  requirement: !ruby/object:Gem::Requirement
127
245
  requirements:
128
246
  - - "~>"
129
247
  - !ruby/object:Gem::Version
130
- version: 0.2.0
248
+ version: 0.6.0
131
249
  type: :runtime
132
250
  prerelease: false
133
251
  version_requirements: !ruby/object:Gem::Requirement
134
252
  requirements:
135
253
  - - "~>"
136
254
  - !ruby/object:Gem::Version
137
- version: 0.2.0
255
+ version: 0.6.0
256
+ - !ruby/object:Gem::Dependency
257
+ name: timeout
258
+ requirement: !ruby/object:Gem::Requirement
259
+ requirements:
260
+ - - ">="
261
+ - !ruby/object:Gem::Version
262
+ version: '0.3'
263
+ - - "<"
264
+ - !ruby/object:Gem::Version
265
+ version: '1'
266
+ type: :runtime
267
+ prerelease: false
268
+ version_requirements: !ruby/object:Gem::Requirement
269
+ requirements:
270
+ - - ">="
271
+ - !ruby/object:Gem::Version
272
+ version: '0.3'
273
+ - - "<"
274
+ - !ruby/object:Gem::Version
275
+ version: '1'
138
276
  - !ruby/object:Gem::Dependency
139
277
  name: unicode-display_width
140
278
  requirement: !ruby/object:Gem::Requirement
@@ -155,14 +293,14 @@ dependencies:
155
293
  requirements:
156
294
  - - "~>"
157
295
  - !ruby/object:Gem::Version
158
- version: 0.4.0
296
+ version: 0.5.2
159
297
  type: :runtime
160
298
  prerelease: false
161
299
  version_requirements: !ruby/object:Gem::Requirement
162
300
  requirements:
163
301
  - - "~>"
164
302
  - !ruby/object:Gem::Version
165
- version: 0.4.0
303
+ version: 0.5.2
166
304
  email:
167
305
  - t.yudai92@gmail.com
168
306
  executables:
@@ -174,6 +312,10 @@ files:
174
312
  - LICENSE.txt
175
313
  - README.md
176
314
  - assets/canopus-editor.png
315
+ - assets/keymaps/emacs.jsonc
316
+ - assets/keymaps/jetbrains.jsonc
317
+ - assets/keymaps/sublime.jsonc
318
+ - assets/keymaps/vscode.jsonc
177
319
  - assets/logo.png
178
320
  - docs/adr/000-template.md
179
321
  - docs/adr/001-runtime-gem-components.md
@@ -187,11 +329,15 @@ files:
187
329
  - docs/adr/009-decoration-overlay-path.md
188
330
  - docs/adr/010-overlay-aware-display-map.md
189
331
  - docs/adr/README.md
332
+ - docs/debugging.md
190
333
  - docs/distribution.md
191
334
  - docs/lsp.md
192
335
  - docs/performance.md
336
+ - docs/providers.md
193
337
  - docs/release-log.md
194
338
  - docs/snippets.md
339
+ - docs/tasks.md
340
+ - docs/testing.md
195
341
  - docs/vim.md
196
342
  - docs/workspace_edits.md
197
343
  - examples/native_smoke.rb
@@ -204,7 +350,14 @@ files:
204
350
  - lib/canopus/command.rb
205
351
  - lib/canopus/controller.rb
206
352
  - lib/canopus/data_compat.rb
353
+ - lib/canopus/debug/breakpoints.rb
354
+ - lib/canopus/debug/configuration.rb
355
+ - lib/canopus/debug/console.rb
356
+ - lib/canopus/debug/panel.rb
357
+ - lib/canopus/debug/session.rb
207
358
  - lib/canopus/decoration.rb
359
+ - lib/canopus/denebola_compat.rb
360
+ - lib/canopus/diagnostics.rb
208
361
  - lib/canopus/display_map.rb
209
362
  - lib/canopus/display_map/line_builder.rb
210
363
  - lib/canopus/display_map/line_set.rb
@@ -217,6 +370,7 @@ files:
217
370
  - lib/canopus/editor/snippet_expandable.rb
218
371
  - lib/canopus/error.rb
219
372
  - lib/canopus/fold_map.rb
373
+ - lib/canopus/git/state.rb
220
374
  - lib/canopus/icon_theme.rb
221
375
  - lib/canopus/language.rb
222
376
  - lib/canopus/language/background_analysis.rb
@@ -227,17 +381,9 @@ files:
227
381
  - lib/canopus/language/symbol.rb
228
382
  - lib/canopus/language/syntax_worker.rb
229
383
  - lib/canopus/lazy_rope.rb
230
- - lib/canopus/lsp.rb
231
- - lib/canopus/lsp/client.rb
232
- - lib/canopus/lsp/error.rb
233
- - lib/canopus/lsp/future.rb
234
- - lib/canopus/lsp/future/subscription.rb
235
- - lib/canopus/lsp/protocol.rb
236
- - lib/canopus/lsp/server_error.rb
237
- - lib/canopus/lsp/timeout.rb
238
- - lib/canopus/lsp/transport.rb
239
384
  - lib/canopus/markdown.rb
240
385
  - lib/canopus/match_data_compat.rb
386
+ - lib/canopus/minimap.rb
241
387
  - lib/canopus/multi_buffer.rb
242
388
  - lib/canopus/pane.rb
243
389
  - lib/canopus/panel.rb
@@ -252,26 +398,29 @@ files:
252
398
  - lib/canopus/plugins/permission_denied.rb
253
399
  - lib/canopus/plugins/registry.rb
254
400
  - lib/canopus/project.rb
255
- - lib/canopus/project/search.rb
256
- - lib/canopus/project/search_worker.rb
257
- - lib/canopus/project/search_worker/cancelled.rb
258
- - lib/canopus/project/search_worker/runner.rb
259
401
  - lib/canopus/project/tree.rb
260
402
  - lib/canopus/project/watcher.rb
403
+ - lib/canopus/provider.rb
261
404
  - lib/canopus/regexp_compat.rb
262
405
  - lib/canopus/save_conflict.rb
263
406
  - lib/canopus/selection.rb
264
407
  - lib/canopus/settings.rb
408
+ - lib/canopus/settings/schema.rb
265
409
  - lib/canopus/snippet.rb
266
410
  - lib/canopus/snippet/transform.rb
267
411
  - lib/canopus/tab_map.rb
268
- - lib/canopus/terminal.rb
269
- - lib/canopus/terminal/cell.rb
270
- - lib/canopus/terminal/grid.rb
271
- - lib/canopus/terminal/pty.rb
272
- - lib/canopus/terminal/scrollback.rb
273
- - lib/canopus/terminal/vt.rb
412
+ - lib/canopus/task/configuration.rb
413
+ - lib/canopus/task/problem_matcher.rb
414
+ - lib/canopus/task/runner.rb
415
+ - lib/canopus/test_runner.rb
416
+ - lib/canopus/test_runner/bounded_ignore.rb
417
+ - lib/canopus/test_runner/discovery.rb
418
+ - lib/canopus/test_runner/execution.rb
419
+ - lib/canopus/test_runner/minitest.rb
420
+ - lib/canopus/test_runner/rspec.rb
421
+ - lib/canopus/test_runner/safe_walker.rb
274
422
  - lib/canopus/theme.rb
423
+ - lib/canopus/theme/import.rb
275
424
  - lib/canopus/version.rb
276
425
  - lib/canopus/vim.rb
277
426
  - lib/canopus/vim/commandable.rb
@@ -279,36 +428,58 @@ files:
279
428
  - lib/canopus/vim/operator_capable.rb
280
429
  - lib/canopus/vim/text_object_selectable.rb
281
430
  - lib/canopus/workspace.rb
431
+ - lib/canopus/workspace/auto_savable.rb
432
+ - lib/canopus/workspace/debug_aware.rb
282
433
  - lib/canopus/workspace/edit.rb
283
434
  - lib/canopus/workspace/edit/executable.rb
284
435
  - lib/canopus/workspace/edit/node.rb
285
436
  - lib/canopus/workspace/edit/plan.rb
286
437
  - lib/canopus/workspace/edit/resource_preparable.rb
438
+ - lib/canopus/workspace/editor_configurable.rb
287
439
  - lib/canopus/workspace/file_change_aware.rb
288
440
  - lib/canopus/workspace/file_previewable.rb
289
441
  - lib/canopus/workspace/git_aware.rb
442
+ - lib/canopus/workspace/git_blame.rb
443
+ - lib/canopus/workspace/git_conflict_resolution.rb
444
+ - lib/canopus/workspace/git_diff_view.rb
445
+ - lib/canopus/workspace/git_history.rb
446
+ - lib/canopus/workspace/git_remote.rb
447
+ - lib/canopus/workspace/git_staging.rb
448
+ - lib/canopus/workspace/hierarchy_aware.rb
449
+ - lib/canopus/workspace/keymap_aware.rb
290
450
  - lib/canopus/workspace/language_aware.rb
291
451
  - lib/canopus/workspace/language_server_configurable.rb
452
+ - lib/canopus/workspace/persistent_undo.rb
453
+ - lib/canopus/workspace/problems_aware.rb
292
454
  - lib/canopus/workspace/project_searchable.rb
293
455
  - lib/canopus/workspace/project_tree_editable.rb
456
+ - lib/canopus/workspace/recoverable.rb
294
457
  - lib/canopus/workspace/session_persistable.rb
295
458
  - lib/canopus/workspace/settings_aware.rb
459
+ - lib/canopus/workspace/task_aware.rb
460
+ - lib/canopus/workspace/test_aware.rb
461
+ - lib/canopus/workspace/trust.rb
296
462
  - lib/canopus/workspace/view.rb
297
463
  - lib/canopus/workspace/view/terminal_presentable.rb
298
464
  - lib/canopus/wrap_map.rb
299
465
  - sig/canopus.rbs
300
466
  - sig/command.rbs
301
467
  - sig/controller.rbs
468
+ - sig/debug.rbs
302
469
  - sig/decoration.rbs
470
+ - sig/diagnostics.rbs
303
471
  - sig/display_stages.rbs
304
- - sig/lsp.rbs
305
472
  - sig/markdown.rbs
473
+ - sig/minimap.rbs
306
474
  - sig/panel.rbs
307
475
  - sig/performance_recorder.rbs
476
+ - sig/provider.rbs
308
477
  - sig/search_services.rbs
309
478
  - sig/services.rbs
310
479
  - sig/snippet.rbs
311
- - sig/terminal.rbs
480
+ - sig/task.rbs
481
+ - sig/test_runner.rbs
482
+ - sig/trust.rbs
312
483
  - sig/vim.rbs
313
484
  - sig/workspace_edits.rbs
314
485
  - sig/workspace_services.rbs
@@ -316,7 +487,11 @@ files:
316
487
  - tools/check_dependencies.rb
317
488
  - tools/native_check.rb
318
489
  - tools/package.rb
490
+ - tools/package_signature_test.rb
319
491
  - tools/package_test.rb
492
+ - tools/sign_package.rb
493
+ - tools/update.rb
494
+ - tools/update_test.rb
320
495
  homepage: https://github.com/noxdea/canopus
321
496
  licenses:
322
497
  - MIT