@@ -135,6 +135,19 @@ def self.prune_resource_parameters(resources)
135135 end
136136 private_class_method :prune_resource_parameters
137137
138+ def self . current_environment
139+ begin
140+ env = Puppet . lookup ( :environments ) . get! ( Puppet . settings [ :environment ] )
141+ return env unless env . nil?
142+ rescue Puppet ::Environments ::EnvironmentNotFound
143+ PuppetLanguageServer . log_message ( :warning , "[PuppetHelper::current_environment] Unable to load environment #{ Puppet . settings [ :environment ] } " )
144+ rescue StandardError => ex
145+ PuppetLanguageServer . log_message ( :warning , "[PuppetHelper::current_environment] Error loading environment #{ Puppet . settings [ :environment ] } : #{ ex } " )
146+ end
147+ Puppet . lookup ( :current_environment )
148+ end
149+ private_class_method :current_environment
150+
138151 # Class and Defined Type loading
139152 def self . _load_default_classes
140153 @default_classes_loaded = false
@@ -325,7 +338,7 @@ def self._load_default_types
325338
326339 # From https://github.com/puppetlabs/puppet/blob/ebd96213cab43bb2a8071b7ac0206c3ed0be8e58/lib/puppet/metatype/manager.rb#L182-L189
327340 autoloader = Puppet ::Util ::Autoload . new ( self , 'puppet/type' )
328- current_env = Puppet . lookup ( : current_environment)
341+ current_env = current_environment
329342 type_count = 0
330343
331344 # This is an expensive call
@@ -389,7 +402,7 @@ def self._load_default_functions
389402 PuppetLanguageServer . log_message ( :debug , '[PuppetHelper::_load_default_functions] Starting' )
390403
391404 autoloader = Puppet ::Parser ::Functions . autoloader
392- current_env = Puppet . lookup ( : current_environment)
405+ current_env = current_environment
393406 function_count = 0
394407
395408 # Functions that are already loaded (e.g. system default functions like alert)
0 commit comments