Sha256: 3b1859397c5fa5f028179a83d97a0e39c6923045c463305404412dcc9f684ab3

Contents?: true

Size: 1.06 KB

Versions: 4

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module ThemeCheck
  module LanguageServer
    class CompletionProvider
      include CompletionHelper
      include RegexHelpers

      attr_reader :storage

      CurrentToken = Struct.new(:content, :cursor, :absolute_cursor, :buffer)

      class << self
        def all
          @all ||= []
        end

        def inherited(subclass)
          all << subclass
        end
      end

      def initialize(storage = InMemoryStorage.new)
        @storage = storage
      end

      def completions(relative_path, line, col)
        raise NotImplementedError
      end

      def doc_hash(content)
        return {} if content.nil? || content.empty?

        {
          documentation: {
            kind: MarkupKinds::MARKDOWN,
            value: content,
          },
        }
      end

      def format_hash(entry)
        return {} unless entry
        return { sortText: entry.name } unless entry.deprecated?

        {
          tags: [CompletionItemTag::DEPRECATED],
          sortText: "~#{entry.name}",
        }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
theme-check-1.15.0 lib/theme_check/language_server/completion_provider.rb
theme-check-1.14.0 lib/theme_check/language_server/completion_provider.rb
theme-check-1.13.0 lib/theme_check/language_server/completion_provider.rb
theme-check-1.12.1 lib/theme_check/language_server/completion_provider.rb