From f3f54fc15349dd532b752255447e15823f0e07cb Mon Sep 17 00:00:00 2001 From: Dave Armstrong Date: Mon, 27 Sep 2021 19:42:54 +0100 Subject: [PATCH 1/2] (GH-311) Explicitly require Facter Changes with how Puppet includes Facter as suggested in the ticket means that we need to explicitly include the library. --- lib/puppet_languageserver.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/puppet_languageserver.rb b/lib/puppet_languageserver.rb index 907ab3af..2a1cf1fd 100644 --- a/lib/puppet_languageserver.rb +++ b/lib/puppet_languageserver.rb @@ -72,6 +72,7 @@ def self.require_gems(options) begin require 'lsp/lsp' require 'puppet' + require 'facter' rescue LoadError => e log_message(:error, "Error while loading a critical gem: #{e} #{e.backtrace}") return From 8bc8ed5fe03dcc095131aca895c5b4301744763d Mon Sep 17 00:00:00 2001 From: Dave Armstrong Date: Thu, 30 Sep 2021 12:31:15 +0100 Subject: [PATCH 2/2] (maint) Environment expected as symbol --- .../puppet_environment_monkey_patches.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/puppet-languageserver-sidecar/puppet_environment_monkey_patches.rb b/lib/puppet-languageserver-sidecar/puppet_environment_monkey_patches.rb index d9e70eec..56acb2a2 100644 --- a/lib/puppet-languageserver-sidecar/puppet_environment_monkey_patches.rb +++ b/lib/puppet-languageserver-sidecar/puppet_environment_monkey_patches.rb @@ -6,7 +6,7 @@ class Directories # environment, create a new Puppet::Node::Environment object for the workspace alias_method :original_get, :get def get(name) - if name == PuppetLanguageServerSidecar::PuppetHelper::SIDECAR_PUPPET_ENVIRONMENT + if name.intern == PuppetLanguageServerSidecar::PuppetHelper::SIDECAR_PUPPET_ENVIRONMENT.intern env_symbol = name.intern setting_values = Puppet.settings.values(env_symbol, Puppet.settings.preferred_run_mode) env = Puppet::Node::Environment.create( @@ -26,7 +26,7 @@ def get(name) # from the workspace. alias_method :original_get_conf, :get_conf def get_conf(name) - if name == PuppetLanguageServerSidecar::PuppetHelper::SIDECAR_PUPPET_ENVIRONMENT.intern + if name.intern == PuppetLanguageServerSidecar::PuppetHelper::SIDECAR_PUPPET_ENVIRONMENT.intern conf = Puppet::Settings::EnvironmentConf.load_from(PuppetLanguageServerSidecar::Workspace.root_path, @global_module_path) # Unfortunately the environment.conf expects OS style delimiters which means # it fails if written for windows and read on Unix and vice versa. So we just