solargraph 0.31.0 → 0.31.1
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/lib/solargraph/language_server/host.rb +5 -2
 - data/lib/solargraph/language_server/message/base.rb +1 -0
 - data/lib/solargraph/language_server/message/workspace/did_change_configuration.rb +1 -0
 - data/lib/solargraph/language_server/transport/adapter.rb +2 -2
 - data/lib/solargraph/language_server/transport/data_reader.rb +1 -1
 - data/lib/solargraph/library.rb +3 -1
 - data/lib/solargraph/source.rb +5 -4
 - data/lib/solargraph/source/source_chainer.rb +7 -9
 - data/lib/solargraph/version.rb +1 -1
 - data/lib/solargraph/workspace/config.rb +3 -2
 - data/lib/solargraph/yard_map/core_gen.rb +42 -13
 - metadata +16 -16
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: a170a254c51b9119d68f9542bb621eee41831b814e94d5f987eb2c7d78f412ba
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 9beff1ee445b21b89dbbcee0d2a68bed60911940a8587a58c6c361aa0ca7ffad
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 79d0c51c0b65bf9f10f816b3821aa463d4f767a6ef926a948574e7c33b6f24eb8be5eda8a93bb41ad8d8e56bd73800b57fcc1e79cf85cf05efcf5279bff34319
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: a6ddfcd658534c8f6c01d1b5f9ab25d13c9bc0abb2f437e783e6a89a280048d8886b8b105afc37f428ac25ecf403f9ad9e1a26dff5a7903c1eac28d04f10f953
         
     | 
| 
         @@ -129,7 +129,7 @@ module Solargraph 
     | 
|
| 
       129 
129 
     | 
    
         
             
                  # @param uri [String] The file uri.
         
     | 
| 
       130 
130 
     | 
    
         
             
                  # @return [void]
         
     | 
| 
       131 
131 
     | 
    
         
             
                  def delete uri
         
     | 
| 
       132 
     | 
    
         
            -
                    sources.close uri
         
     | 
| 
      
 132 
     | 
    
         
            +
                    # sources.close uri # @todo It's possible for a deleted file to be open in an editor
         
     | 
| 
       133 
133 
     | 
    
         
             
                    filename = uri_to_file(uri)
         
     | 
| 
       134 
134 
     | 
    
         
             
                    libraries.each do |lib|
         
     | 
| 
       135 
135 
     | 
    
         
             
                      # lib.delete filename
         
     | 
| 
         @@ -534,7 +534,10 @@ module Solargraph 
     | 
|
| 
       534 
534 
     | 
    
         
             
                  # @return [Array<Solargraph::Pin::Base>]
         
     | 
| 
       535 
535 
     | 
    
         
             
                  def document_symbols uri
         
     | 
| 
       536 
536 
     | 
    
         
             
                    library = library_for(uri)
         
     | 
| 
       537 
     | 
    
         
            -
                     
     | 
| 
      
 537 
     | 
    
         
            +
                    # At this level, document symbols should be unique; e.g., a
         
     | 
| 
      
 538 
     | 
    
         
            +
                    # module_function method should return the location for Module.method
         
     | 
| 
      
 539 
     | 
    
         
            +
                    # or Module#method, but not both.
         
     | 
| 
      
 540 
     | 
    
         
            +
                    library.document_symbols(uri_to_file(uri)).uniq(&:location)
         
     | 
| 
       538 
541 
     | 
    
         
             
                  end
         
     | 
| 
       539 
542 
     | 
    
         | 
| 
       540 
543 
     | 
    
         
             
                  # Send a notification to the client.
         
     | 
| 
         @@ -3,6 +3,7 @@ require 'uri' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            module Solargraph::LanguageServer::Message::Workspace
         
     | 
| 
       4 
4 
     | 
    
         
             
              class DidChangeConfiguration < Solargraph::LanguageServer::Message::Base
         
     | 
| 
       5 
5 
     | 
    
         
             
                def process
         
     | 
| 
      
 6 
     | 
    
         
            +
                  return unless params['settings']
         
     | 
| 
       6 
7 
     | 
    
         
             
                  update = params['settings']['solargraph']
         
     | 
| 
       7 
8 
     | 
    
         
             
                  host.configure update
         
     | 
| 
       8 
9 
     | 
    
         
             
                  register_from_options
         
     | 
| 
         @@ -1,11 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'backport'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       1 
3 
     | 
    
         
             
            module Solargraph
         
     | 
| 
       2 
4 
     | 
    
         
             
              module LanguageServer
         
     | 
| 
       3 
5 
     | 
    
         
             
                module Transport
         
     | 
| 
       4 
6 
     | 
    
         
             
                  # A common module for running language servers in Backport.
         
     | 
| 
       5 
7 
     | 
    
         
             
                  #
         
     | 
| 
       6 
8 
     | 
    
         
             
                  module Adapter
         
     | 
| 
       7 
     | 
    
         
            -
                    @@timer_is_running = false
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
9 
     | 
    
         
             
                    def opening
         
     | 
| 
       10 
10 
     | 
    
         
             
                      @host = Solargraph::LanguageServer::Host.new
         
     | 
| 
       11 
11 
     | 
    
         
             
                      @host.start
         
     | 
| 
         @@ -52,7 +52,7 @@ module Solargraph 
     | 
|
| 
       52 
52 
     | 
    
         
             
                        msg = JSON.parse(@buffer)
         
     | 
| 
       53 
53 
     | 
    
         
             
                        @message_handler.call msg unless @message_handler.nil?
         
     | 
| 
       54 
54 
     | 
    
         
             
                      rescue JSON::ParserError => e
         
     | 
| 
       55 
     | 
    
         
            -
                        Solargraph::Logging.logger. 
     | 
| 
      
 55 
     | 
    
         
            +
                        Solargraph::Logging.logger.warn "Failed to parse request: #{e.message}"
         
     | 
| 
       56 
56 
     | 
    
         
             
                        Solargraph::Logging.logger.debug "Buffer: #{@buffer}"
         
     | 
| 
       57 
57 
     | 
    
         
             
                      ensure
         
     | 
| 
       58 
58 
     | 
    
         
             
                        @buffer.clear
         
     | 
    
        data/lib/solargraph/library.rb
    CHANGED
    
    | 
         @@ -207,7 +207,9 @@ module Solargraph 
     | 
|
| 
       207 
207 
     | 
    
         
             
                      found = source.references(pin.name)
         
     | 
| 
       208 
208 
     | 
    
         
             
                      found.select! do |loc|
         
     | 
| 
       209 
209 
     | 
    
         
             
                        referenced = definitions_at(loc.filename, loc.range.ending.line, loc.range.ending.character)
         
     | 
| 
       210 
     | 
    
         
            -
                         
     | 
| 
      
 210 
     | 
    
         
            +
                        # HACK: The additional location comparison is necessary because
         
     | 
| 
      
 211 
     | 
    
         
            +
                        # Clip#define can return proxies for parameter pins
         
     | 
| 
      
 212 
     | 
    
         
            +
                        referenced.any?{|r| r == pin || r.location == pin.location}
         
     | 
| 
       211 
213 
     | 
    
         
             
                      end
         
     | 
| 
       212 
214 
     | 
    
         
             
                      # HACK: for language clients that exclude special characters from the start of variable names
         
     | 
| 
       213 
215 
     | 
    
         
             
                      if strip && match = cursor.word.match(/^[^a-z0-9_]+/i)
         
     | 
    
        data/lib/solargraph/source.rb
    CHANGED
    
    | 
         @@ -200,7 +200,8 @@ module Solargraph 
     | 
|
| 
       200 
200 
     | 
    
         
             
                # @return [Boolean]
         
     | 
| 
       201 
201 
     | 
    
         
             
                def comment_at? position
         
     | 
| 
       202 
202 
     | 
    
         
             
                  comment_ranges.each do |range|
         
     | 
| 
       203 
     | 
    
         
            -
                    return true if range.include?(position)
         
     | 
| 
      
 203 
     | 
    
         
            +
                    return true if range.include?(position) ||
         
     | 
| 
      
 204 
     | 
    
         
            +
                      (range.ending.line == position.line && range.ending.column < position.column)
         
     | 
| 
       204 
205 
     | 
    
         
             
                    break if range.ending.line > position.line
         
     | 
| 
       205 
206 
     | 
    
         
             
                  end
         
     | 
| 
       206 
207 
     | 
    
         
             
                  false
         
     | 
| 
         @@ -257,7 +258,7 @@ module Solargraph 
     | 
|
| 
       257 
258 
     | 
    
         
             
                end
         
     | 
| 
       258 
259 
     | 
    
         | 
| 
       259 
260 
     | 
    
         
             
                FOLDING_NODE_TYPES = %i[
         
     | 
| 
       260 
     | 
    
         
            -
                  class sclass module def defs if str dstr array while unless kwbegin hash
         
     | 
| 
      
 261 
     | 
    
         
            +
                  class sclass module def defs if str dstr array while unless kwbegin hash block
         
     | 
| 
       261 
262 
     | 
    
         
             
                ].freeze
         
     | 
| 
       262 
263 
     | 
    
         | 
| 
       263 
264 
     | 
    
         
             
                # Get an array of ranges that can be folded, e.g., the range of a class
         
     | 
| 
         @@ -334,9 +335,9 @@ module Solargraph 
     | 
|
| 
       334 
335 
     | 
    
         
             
                      num = cur if cur < num
         
     | 
| 
       335 
336 
     | 
    
         
             
                    end
         
     | 
| 
       336 
337 
     | 
    
         
             
                    # Include blank lines between comments
         
     | 
| 
       337 
     | 
    
         
            -
                    ctxt += ("\n" * (l.loc.first_line - last_line - 1)) unless last_line.nil?
         
     | 
| 
      
 338 
     | 
    
         
            +
                    ctxt += ("\n" * (l.loc.first_line - last_line - 1)) unless last_line.nil? || l.loc.first_line - last_line <= 0
         
     | 
| 
       338 
339 
     | 
    
         
             
                    ctxt += "#{p[num..-1]}\n" if started
         
     | 
| 
       339 
     | 
    
         
            -
                    last_line = l.loc.last_line
         
     | 
| 
      
 340 
     | 
    
         
            +
                    last_line = l.loc.last_line if last_line.nil? || l.loc.last_line > last_line
         
     | 
| 
       340 
341 
     | 
    
         
             
                  }
         
     | 
| 
       341 
342 
     | 
    
         
             
                  ctxt
         
     | 
| 
       342 
343 
     | 
    
         
             
                end
         
     | 
| 
         @@ -33,16 +33,14 @@ module Solargraph 
     | 
|
| 
       33 
33 
     | 
    
         
             
                    return Chain.new([Chain::Literal.new('Symbol')]) if phrase.start_with?(':') && !phrase.start_with?('::')
         
     | 
| 
       34 
34 
     | 
    
         
             
                    begin
         
     | 
| 
       35 
35 
     | 
    
         
             
                      return Chain.new([]) if phrase.end_with?('..')
         
     | 
| 
       36 
     | 
    
         
            -
                      if source.synchronized?
         
     | 
| 
       37 
     | 
    
         
            -
                         
     | 
| 
       38 
     | 
    
         
            -
                          node = source.node_at(position.line, position.column)
         
     | 
| 
       39 
     | 
    
         
            -
                        else
         
     | 
| 
       40 
     | 
    
         
            -
                          node = nil
         
     | 
| 
       41 
     | 
    
         
            -
                          node = source.node_at(fixed_position.line, fixed_position.column) unless source.error_ranges.any?{|r| r.nil? || r.include?(fixed_position)}
         
     | 
| 
       42 
     | 
    
         
            -
                          node = Source.parse(fixed_phrase) if node.nil?
         
     | 
| 
       43 
     | 
    
         
            -
                        end
         
     | 
| 
      
 36 
     | 
    
         
            +
                      if !source.repaired? && source.parsed? && source.synchronized?
         
     | 
| 
      
 37 
     | 
    
         
            +
                        node = source.node_at(position.line, position.column)
         
     | 
| 
       44 
38 
     | 
    
         
             
                      else
         
     | 
| 
       45 
     | 
    
         
            -
                        node =  
     | 
| 
      
 39 
     | 
    
         
            +
                        node = nil
         
     | 
| 
      
 40 
     | 
    
         
            +
                        node = source.node_at(fixed_position.line, fixed_position.column) unless source.error_ranges.any?{|r| r.nil? || r.include?(fixed_position)}
         
     | 
| 
      
 41 
     | 
    
         
            +
                        # Exception for positions that chain literal nodes in unsynchronized sources
         
     | 
| 
      
 42 
     | 
    
         
            +
                        node = nil unless source.synchronized? || !infer_literal_node_type(node).nil?
         
     | 
| 
      
 43 
     | 
    
         
            +
                        node = Source.parse(fixed_phrase) if node.nil?
         
     | 
| 
       46 
44 
     | 
    
         
             
                      end
         
     | 
| 
       47 
45 
     | 
    
         
             
                    rescue Parser::SyntaxError
         
     | 
| 
       48 
46 
     | 
    
         
             
                      return Chain.new([Chain::UNDEFINED_CALL])
         
     | 
    
        data/lib/solargraph/version.rb
    CHANGED
    
    
| 
         @@ -45,7 +45,7 @@ module Solargraph 
     | 
|
| 
       45 
45 
     | 
    
         
             
                  #
         
     | 
| 
       46 
46 
     | 
    
         
             
                  # @return [Array<String>]
         
     | 
| 
       47 
47 
     | 
    
         
             
                  def included
         
     | 
| 
       48 
     | 
    
         
            -
                    return [] if directory.empty?
         
     | 
| 
      
 48 
     | 
    
         
            +
                    return [] if directory.empty? || directory == '*'
         
     | 
| 
       49 
49 
     | 
    
         
             
                    @included ||= process_globs(@raw_data['include'])
         
     | 
| 
       50 
50 
     | 
    
         
             
                  end
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
         @@ -53,7 +53,7 @@ module Solargraph 
     | 
|
| 
       53 
53 
     | 
    
         
             
                  #
         
     | 
| 
       54 
54 
     | 
    
         
             
                  # @return [Array<String>]
         
     | 
| 
       55 
55 
     | 
    
         
             
                  def excluded
         
     | 
| 
       56 
     | 
    
         
            -
                    return [] if directory.empty?
         
     | 
| 
      
 56 
     | 
    
         
            +
                    return [] if directory.empty? || directory == '*'
         
     | 
| 
       57 
57 
     | 
    
         
             
                    @excluded ||= process_exclusions(@raw_data['exclude'])
         
     | 
| 
       58 
58 
     | 
    
         
             
                  end
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
         @@ -61,6 +61,7 @@ module Solargraph 
     | 
|
| 
       61 
61 
     | 
    
         
             
                  #
         
     | 
| 
       62 
62 
     | 
    
         
             
                  # @return [Array<String>]
         
     | 
| 
       63 
63 
     | 
    
         
             
                  def calculated
         
     | 
| 
      
 64 
     | 
    
         
            +
                    Solargraph.logger.info "Indexing workspace files in #{directory}" unless @calculated || directory.empty? || directory == '*'
         
     | 
| 
       64 
65 
     | 
    
         
             
                    @calculated ||= included - excluded
         
     | 
| 
       65 
66 
     | 
    
         
             
                  end
         
     | 
| 
       66 
67 
     | 
    
         | 
| 
         @@ -1,6 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'fileutils'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'tmpdir'
         
     | 
| 
       3 
3 
     | 
    
         
             
            require 'pathname'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'rubygems/package'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'shellwords'
         
     | 
| 
       4 
6 
     | 
    
         | 
| 
       5 
7 
     | 
    
         
             
            module Solargraph
         
     | 
| 
       6 
8 
     | 
    
         
             
              class YardMap
         
     | 
| 
         @@ -17,28 +19,55 @@ module Solargraph 
     | 
|
| 
       17 
19 
     | 
    
         
             
                      path_name = Pathname.new(Dir.pwd).join(dest_dir).to_s
         
     | 
| 
       18 
20 
     | 
    
         
             
                      FileUtils.mkdir_p path_name
         
     | 
| 
       19 
21 
     | 
    
         
             
                      Dir.chdir(ruby_dir) do
         
     | 
| 
       20 
     | 
    
         
            -
                        `yardoc --plugin coregen -b #{File.join(path_name, 'yardoc')} -n *.c`
         
     | 
| 
      
 22 
     | 
    
         
            +
                        `yardoc --plugin coregen -b "#{File.join(path_name, 'yardoc')}" -n *.c`
         
     | 
| 
       21 
23 
     | 
    
         
             
                        raise 'An error occurred generating the core yardoc.' unless $?.success?
         
     | 
| 
       22 
     | 
    
         
            -
                         
     | 
| 
      
 24 
     | 
    
         
            +
                        # YARD::CLI::Yardoc.run('--plugin', 'coregen', '-b', "#{File.join(path_name, 'yardoc')}", '-n', File.join(ruby_dir, '*.c'))
         
     | 
| 
      
 25 
     | 
    
         
            +
                        `yardoc -b "#{File.join(path_name, 'yardoc-stdlib')}" -n lib ext`
         
     | 
| 
       23 
26 
     | 
    
         
             
                        raise 'An error occurred generating the stdlib yardoc.' unless $?.success?
         
     | 
| 
      
 27 
     | 
    
         
            +
                        # YARD::CLI::Yardoc.run('-b', "#{File.join(path_name, 'yardoc-stdlib')}", '-n', File.join(ruby_dir, 'lib', '**', '*.rb'), File.join(ruby_dir, 'ext', '**', '*.c'), File.join(ruby_dir, 'ext', '**', '*.rb'))
         
     | 
| 
       24 
28 
     | 
    
         
             
                      end
         
     | 
| 
       25 
29 
     | 
    
         
             
                    end
         
     | 
| 
       26 
30 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
                    # Generate a gzip of documentation from the specified Ruby source 
     | 
| 
      
 31 
     | 
    
         
            +
                    # Generate a gzip of documentation from the specified Ruby source
         
     | 
| 
      
 32 
     | 
    
         
            +
                    # directory.
         
     | 
| 
      
 33 
     | 
    
         
            +
                    #
         
     | 
| 
      
 34 
     | 
    
         
            +
                    # This method is designed to generate the directory architecture that
         
     | 
| 
      
 35 
     | 
    
         
            +
                    # YardMap core docs expect.
         
     | 
| 
       28 
36 
     | 
    
         
             
                    #
         
     | 
| 
       29 
37 
     | 
    
         
             
                    # @param ruby_dir [String] The Ruby source directory
         
     | 
| 
       30 
     | 
    
         
            -
                    # @param  
     | 
| 
      
 38 
     | 
    
         
            +
                    # @param ver_name [String, nil] The version name
         
     | 
| 
      
 39 
     | 
    
         
            +
                    # @param dest_dir [String] The destination directory
         
     | 
| 
       31 
40 
     | 
    
         
             
                    # @return [void]
         
     | 
| 
       32 
     | 
    
         
            -
                    def generate_gzip ruby_dir,  
     | 
| 
      
 41 
     | 
    
         
            +
                    def generate_gzip ruby_dir, ver_name = nil, dest_dir = Dir.pwd
         
     | 
| 
       33 
42 
     | 
    
         
             
                      Dir.mktmpdir do |tmp|
         
     | 
| 
       34 
     | 
    
         
            -
                         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
                         
     | 
| 
       39 
     | 
    
         
            -
                         
     | 
| 
       40 
     | 
    
         
            -
                         
     | 
| 
       41 
     | 
    
         
            -
                         
     | 
| 
      
 43 
     | 
    
         
            +
                        base_name = ver_name || begin
         
     | 
| 
      
 44 
     | 
    
         
            +
                          match = ruby_dir.match(/\d+\.\d+\.\d+$/)
         
     | 
| 
      
 45 
     | 
    
         
            +
                          raise "Unable to determine version name from #{ruby_dir}" if match.nil?
         
     | 
| 
      
 46 
     | 
    
         
            +
                          match[0]
         
     | 
| 
      
 47 
     | 
    
         
            +
                        end
         
     | 
| 
      
 48 
     | 
    
         
            +
                        path_name = Pathname.new(tmp).join(base_name).to_s
         
     | 
| 
      
 49 
     | 
    
         
            +
                        generate_docs ruby_dir, path_name
         
     | 
| 
      
 50 
     | 
    
         
            +
                        gzip path_name, Pathname.new(dest_dir).join("#{base_name}.tar.gz").to_s
         
     | 
| 
      
 51 
     | 
    
         
            +
                      end
         
     | 
| 
      
 52 
     | 
    
         
            +
                    end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                    private
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
                    # @param dir [String] The directory to compress
         
     | 
| 
      
 57 
     | 
    
         
            +
                    # @param dst [String] The destination file
         
     | 
| 
      
 58 
     | 
    
         
            +
                    def gzip dir, dst
         
     | 
| 
      
 59 
     | 
    
         
            +
                      File.open(dst, 'wb') do |file|
         
     | 
| 
      
 60 
     | 
    
         
            +
                        Zlib::GzipWriter.wrap(file) do |gzip|
         
     | 
| 
      
 61 
     | 
    
         
            +
                          Gem::Package::TarWriter.new(gzip) do |tar|
         
     | 
| 
      
 62 
     | 
    
         
            +
                            Dir["#{dir}/**/*"].each do |filename|
         
     | 
| 
      
 63 
     | 
    
         
            +
                              next if File.directory?(filename)
         
     | 
| 
      
 64 
     | 
    
         
            +
                              relname = File.join(File.basename(dir), filename[dir.length+1..-1])
         
     | 
| 
      
 65 
     | 
    
         
            +
                              tar.add_file_simple(relname, 0o644, File.size(filename)) do |io|
         
     | 
| 
      
 66 
     | 
    
         
            +
                                io.write File.read_binary(filename)
         
     | 
| 
      
 67 
     | 
    
         
            +
                              end
         
     | 
| 
      
 68 
     | 
    
         
            +
                            end
         
     | 
| 
      
 69 
     | 
    
         
            +
                          end
         
     | 
| 
      
 70 
     | 
    
         
            +
                        end
         
     | 
| 
       42 
71 
     | 
    
         
             
                      end
         
     | 
| 
       43 
72 
     | 
    
         
             
                    end
         
     | 
| 
       44 
73 
     | 
    
         
             
                  end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: solargraph
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.31. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.31.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Fred Snyder
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2019-01- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-01-22 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: backport
         
     | 
| 
         @@ -44,6 +44,20 @@ dependencies: 
     | 
|
| 
       44 
44 
     | 
    
         
             
                - - ">="
         
     | 
| 
       45 
45 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       46 
46 
     | 
    
         
             
                    version: 4.3.4
         
     | 
| 
      
 47 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 48 
     | 
    
         
            +
              name: jaro_winkler
         
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 50 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 51 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 52 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 53 
     | 
    
         
            +
                    version: '1.5'
         
     | 
| 
      
 54 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 55 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 56 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 57 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 58 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 59 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 60 
     | 
    
         
            +
                    version: '1.5'
         
     | 
| 
       47 
61 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       48 
62 
     | 
    
         
             
              name: kramdown
         
     | 
| 
       49 
63 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -154,20 +168,6 @@ dependencies: 
     | 
|
| 
       154 
168 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       155 
169 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       156 
170 
     | 
    
         
             
                    version: '0.9'
         
     | 
| 
       157 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       158 
     | 
    
         
            -
              name: jaro_winkler
         
     | 
| 
       159 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       160 
     | 
    
         
            -
                requirements:
         
     | 
| 
       161 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       162 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       163 
     | 
    
         
            -
                    version: '1.5'
         
     | 
| 
       164 
     | 
    
         
            -
              type: :runtime
         
     | 
| 
       165 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       166 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       167 
     | 
    
         
            -
                requirements:
         
     | 
| 
       168 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       169 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       170 
     | 
    
         
            -
                    version: '1.5'
         
     | 
| 
       171 
171 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       172 
172 
     | 
    
         
             
              name: pry
         
     | 
| 
       173 
173 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     |