solargraph 0.55.4 → 0.56.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.
- checksums.yaml +4 -4
- data/.github/workflows/plugins.yml +2 -0
- data/.github/workflows/typecheck.yml +2 -0
- data/.gitignore +2 -0
- data/CHANGELOG.md +17 -0
- data/README.md +13 -3
- data/lib/solargraph/api_map/index.rb +23 -15
- data/lib/solargraph/api_map/store.rb +2 -1
- data/lib/solargraph/api_map.rb +53 -27
- data/lib/solargraph/complex_type/type_methods.rb +5 -1
- data/lib/solargraph/complex_type/unique_type.rb +7 -0
- data/lib/solargraph/convention/base.rb +3 -3
- data/lib/solargraph/convention.rb +3 -3
- data/lib/solargraph/doc_map.rb +200 -43
- data/lib/solargraph/gem_pins.rb +53 -38
- data/lib/solargraph/language_server/host.rb +9 -1
- data/lib/solargraph/language_server/message/extended/check_gem_version.rb +1 -0
- data/lib/solargraph/language_server/message/extended/document.rb +5 -2
- data/lib/solargraph/language_server/message/extended/document_gems.rb +3 -3
- data/lib/solargraph/library.rb +6 -3
- data/lib/solargraph/location.rb +13 -0
- data/lib/solargraph/parser/parser_gem/class_methods.rb +5 -8
- data/lib/solargraph/parser/parser_gem/node_processors/casgn_node.rb +2 -2
- data/lib/solargraph/parser/parser_gem/node_processors/namespace_node.rb +2 -2
- data/lib/solargraph/pin/base.rb +268 -24
- data/lib/solargraph/pin/base_variable.rb +9 -8
- data/lib/solargraph/pin/callable.rb +69 -0
- data/lib/solargraph/pin/closure.rb +12 -0
- data/lib/solargraph/pin/local_variable.rb +8 -5
- data/lib/solargraph/pin/method.rb +134 -17
- data/lib/solargraph/pin/parameter.rb +43 -6
- data/lib/solargraph/pin/signature.rb +38 -0
- data/lib/solargraph/pin_cache.rb +185 -0
- data/lib/solargraph/position.rb +9 -0
- data/lib/solargraph/range.rb +9 -0
- data/lib/solargraph/rbs_map/conversions.rb +19 -8
- data/lib/solargraph/rbs_map/core_map.rb +31 -9
- data/lib/solargraph/rbs_map/stdlib_map.rb +15 -5
- data/lib/solargraph/rbs_map.rb +74 -17
- data/lib/solargraph/shell.rb +16 -18
- data/lib/solargraph/source_map.rb +0 -17
- data/lib/solargraph/version.rb +1 -1
- data/lib/solargraph/views/_method.erb +10 -10
- data/lib/solargraph/views/_namespace.erb +3 -3
- data/lib/solargraph/views/document.erb +10 -10
- data/lib/solargraph/workspace.rb +15 -5
- data/lib/solargraph/yardoc.rb +6 -9
- data/lib/solargraph.rb +10 -12
- data/rbs_collection.yaml +19 -0
- data/solargraph.gemspec +1 -0
- metadata +19 -7
- data/lib/solargraph/cache.rb +0 -77
data/lib/solargraph/cache.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'rbs'
|
3
|
-
|
4
|
-
module Solargraph
|
5
|
-
module Cache
|
6
|
-
class << self
|
7
|
-
# The base directory where cached documentation is installed.
|
8
|
-
#
|
9
|
-
# @return [String]
|
10
|
-
def base_dir
|
11
|
-
# The directory is not stored in a variable so it can be overridden
|
12
|
-
# in specs.
|
13
|
-
ENV['SOLARGRAPH_CACHE'] ||
|
14
|
-
(ENV['XDG_CACHE_HOME'] ? File.join(ENV['XDG_CACHE_HOME'], 'solargraph') : nil) ||
|
15
|
-
File.join(Dir.home, '.cache', 'solargraph')
|
16
|
-
end
|
17
|
-
|
18
|
-
# The working directory for the current Ruby, RBS, and Solargraph versions.
|
19
|
-
#
|
20
|
-
# @return [String]
|
21
|
-
def work_dir
|
22
|
-
# The directory is not stored in a variable so it can be overridden
|
23
|
-
# in specs.
|
24
|
-
File.join(base_dir, "ruby-#{RUBY_VERSION}", "rbs-#{RBS::VERSION}", "solargraph-#{Solargraph::VERSION}")
|
25
|
-
end
|
26
|
-
|
27
|
-
# Append the given path to the current cache directory (`work_dir`).
|
28
|
-
#
|
29
|
-
# @example
|
30
|
-
# Cache.join('date-3.4.1.ser')
|
31
|
-
#
|
32
|
-
# @param path [Array<String>]
|
33
|
-
# @return [String]
|
34
|
-
def join *path
|
35
|
-
File.join(work_dir, *path)
|
36
|
-
end
|
37
|
-
|
38
|
-
# @param path [Array<String>]
|
39
|
-
# @return [Array<Solargraph::Pin::Base>, nil]
|
40
|
-
def load *path
|
41
|
-
file = join(*path)
|
42
|
-
return nil unless File.file?(file)
|
43
|
-
Marshal.load(File.read(file, mode: 'rb'))
|
44
|
-
rescue StandardError => e
|
45
|
-
Solargraph.logger.warn "Failed to load cached file #{file}: [#{e.class}] #{e.message}"
|
46
|
-
FileUtils.rm_f file
|
47
|
-
nil
|
48
|
-
end
|
49
|
-
|
50
|
-
def exist? *path
|
51
|
-
File.file? join(*path)
|
52
|
-
end
|
53
|
-
|
54
|
-
# @param path [Array<String>]
|
55
|
-
# @param pins [Array<Pin::Base>]
|
56
|
-
# @return [void]
|
57
|
-
def save *path, pins
|
58
|
-
file = File.join(work_dir, *path)
|
59
|
-
base = File.dirname(file)
|
60
|
-
FileUtils.mkdir_p base unless File.directory?(base)
|
61
|
-
ser = Marshal.dump(pins)
|
62
|
-
File.write file, ser, mode: 'wb'
|
63
|
-
end
|
64
|
-
|
65
|
-
# @return [void]
|
66
|
-
# @param path [Array<String>]
|
67
|
-
def uncache *path
|
68
|
-
FileUtils.rm_rf File.join(work_dir, *path), secure: true
|
69
|
-
end
|
70
|
-
|
71
|
-
# @return [void]
|
72
|
-
def clear
|
73
|
-
FileUtils.rm_rf base_dir, secure: true
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|