Sha256: 5a1ed9ee2c0fb5509e7a175f1cf686a90bac88a6dba249439b50783f570467a6
Contents?: true
Size: 1.16 KB
Versions: 1
Compression:
Stored size: 1.16 KB
Contents
require "language_server/protocol/interfaces/completion_item" require "language_server/protocol/constants/completion_item_kind" require "rcodetools/completion" module LanguageServer module CompletionProvider class Filter < ::Rcodetools::XMPCompletionFilter @candidates_with_description_flag = true def completion_code(*args) candidates_with_class(*args) rescue NewCodeError, RuntimeDataError, NoCandidates [nil, []] end end class Rcodetools def initialize(uri:, line:, character:, file_store:) @uri = uri @line = line @character = character @file_store = file_store end def call _, candidates = Filter.run(source, lineno: @line + 1, column: @character) candidates.map do |candidate| method_name, description = candidate.split(/\0/, 2) Protocol::Interfaces::CompletionItem.new( label: method_name, detail: description, kind: Protocol::Constants::CompletionItemKind::METHOD ) end end private def source @file_store.read_remote_uri(@uri) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
language_server-0.4.0 | lib/language_server/completion_provider/rcodetools.rb |