Skip to content

Commit 13bd6c1

Browse files
Merge pull request #65 from jpogran/GH-331-fix-go-to-definition
(GH-66) Fix go to definition
2 parents 6424f82 + 61fcfbb commit 13bd6c1

File tree

4 files changed

+24
-2
lines changed

4 files changed

+24
-2
lines changed

lib/puppet-languageserver.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
puppet_parser_helper
1919
puppet_helper
2020
facter_helper
21+
uri_helper
2122
puppet_monkey_patches
2223
providers
2324
].each do |lib|

lib/puppet-languageserver/manifest/definition_provider.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def self.type_or_class(resource_name)
7070
item = PuppetLanguageServer::PuppetHelper.get_class(resource_name) if item.nil?
7171
unless item.nil?
7272
return LanguageServer::Location.create(
73-
'uri' => 'file:///' + item.source,
73+
'uri' => PuppetLanguageServer::UriHelper.build_file_uri(item.source),
7474
'fromline' => item.line,
7575
'fromchar' => 0,
7676
'toline' => item.line,
@@ -85,7 +85,7 @@ def self.function_name(func_name)
8585
item = PuppetLanguageServer::PuppetHelper.function(func_name)
8686
return nil if item.nil? || item.source.nil? || item.line.nil?
8787
LanguageServer::Location.create(
88-
'uri' => 'file:///' + item.source,
88+
'uri' => PuppetLanguageServer::UriHelper.build_file_uri(item.source),
8989
'fromline' => item.line,
9090
'fromchar' => 0,
9191
'toline' => item.line,
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module PuppetLanguageServer
2+
module UriHelper
3+
def self.build_file_uri(path)
4+
path.start_with?('/') ? 'file://' + path : 'file:///' + path
5+
end
6+
end
7+
end
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
require 'spec_helper'
2+
3+
describe 'uri_helper' do
4+
describe '#build_file_uri' do
5+
it 'should return /// without leading slash' do
6+
test = PuppetLanguageServer::UriHelper.build_file_uri('C:\foo.pp')
7+
expect(test).to eq('file:///C:\foo.pp')
8+
end
9+
it 'should return // with a leading slash' do
10+
test = PuppetLanguageServer::UriHelper.build_file_uri('/opt/foo/foo.pp')
11+
expect(test).to eq('file:///opt/foo/foo.pp')
12+
end
13+
end
14+
end

0 commit comments

Comments
 (0)