Module: PuppetLanguageServer::ServerCapabilites

Defined in:
lib/puppet-languageserver/server_capabilities.rb

Class Method Summary collapse

Class Method Details

.capabilities(options = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/puppet-languageserver/server_capabilities.rb', line 11

def self.capabilities(options = {})
  # https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#initialize-request

  value = {
    'textDocumentSync' => LSP::TextDocumentSyncKind::FULL,
    'hoverProvider' => true,
    'completionProvider' => {
      'resolveProvider' => true,
      'triggerCharacters' => ['>', '$', '[', '=']
    },
    'definitionProvider' => true,
    'documentSymbolProvider' => true,
    'workspaceSymbolProvider' => true,
    'signatureHelpProvider' => {
      'triggerCharacters' => ['(', ',']
    }
  }
  value['documentOnTypeFormattingProvider'] = document_on_type_formatting_options if options[:documentOnTypeFormattingProvider]
  value['foldingRangeProvider'] = folding_range_provider_options if options[:foldingRangeProvider]
  value
end

.document_on_type_formatting_optionsObject



33
34
35
36
37
# File 'lib/puppet-languageserver/server_capabilities.rb', line 33

def self.document_on_type_formatting_options
  {
    'firstTriggerCharacter' => '>'
  }
end

.folding_provider_supported?Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/puppet-languageserver/server_capabilities.rb', line 7

def self.folding_provider_supported?
  @folding_provider ||= PuppetLanguageServer::Manifest::FoldingProvider.supported?
end

.folding_range_provider_optionsObject



39
40
41
# File 'lib/puppet-languageserver/server_capabilities.rb', line 39

def self.folding_range_provider_options
  true
end

.no_capabilitiesObject



43
44
45
46
# File 'lib/puppet-languageserver/server_capabilities.rb', line 43

def self.no_capabilities
  # Any empty hash denotes no capabilities at all
  {}
end