Sha256: 0fd32045d2c47f492e8f080951c76413ddb7e3b86e4c9ee44de80754d5884f34
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
# frozen_string_literal: true module PuppetLanguageServer module Epp module ValidationProvider def self.validate(content, _max_problems = 100) result = [] # TODO: Need to implement max_problems _problems = 0 begin parser = Puppet::Pops::Parser::EvaluatingParser::EvaluatingEppParser.new parser.parse_string(content, nil) rescue StandardError => e # Sometimes the error is in the cause not the root object itself e = e.cause if !e.respond_to?(:line) && e.respond_to?(:cause) ex_line = e.respond_to?(:line) && !e.line.nil? ? e.line - 1 : nil # Line numbers from puppet exceptions are base 1 ex_pos = e.respond_to?(:pos) && !e.pos.nil? ? e.pos : nil # Pos numbers from puppet are base 1 message = e.respond_to?(:message) ? e.message : nil message = e.basic_message if message.nil? && e.respond_to?(:basic_message) unless ex_line.nil? || ex_pos.nil? || message.nil? result << LSP::Diagnostic.new('severity' => LSP::DiagnosticSeverity::ERROR, 'range' => LSP.create_range(ex_line, ex_pos, ex_line, ex_pos + 1), 'source' => 'Puppet', 'message' => message) end end result end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
puppet-editor-services-2.0.4 | lib/puppet-languageserver/epp/validation_provider.rb |