Skip to content

Commit 9e3fbcf

Browse files
Depend on DocumentUri for handing vscode Uri's (#1291)
* Depend on DocumentUri for handing vscode Uri's * unescape colon * authorities are lowercase
1 parent f81c92a commit 9e3fbcf

File tree

15 files changed

+38
-243
lines changed

15 files changed

+38
-243
lines changed

src/PowerShellEditorServices/Services/CodeLens/PesterCodeLensProvider.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
44
//
55

6-
using System;
76
using System.Collections.Generic;
87
using Microsoft.PowerShell.EditorServices.Services;
98
using Microsoft.PowerShell.EditorServices.Services.Symbols;
109
using Microsoft.PowerShell.EditorServices.Services.TextDocument;
1110
using Microsoft.PowerShell.EditorServices.Utility;
1211
using Newtonsoft.Json.Linq;
1312
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
13+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
1414

1515
namespace Microsoft.PowerShell.EditorServices.CodeLenses
1616
{
@@ -60,11 +60,14 @@ private CodeLens[] GetPesterLens(PesterSymbolReference pesterSymbol, ScriptFile
6060
{
6161
Name = "PowerShell.RunPesterTests",
6262
Title = $"Run {word}",
63-
Arguments = JArray.FromObject(new object[] {
63+
Arguments = JArray.FromObject(new object[]
64+
{
6465
scriptFile.DocumentUri,
6566
false /* No debug */,
6667
pesterSymbol.TestName,
67-
pesterSymbol.ScriptRegion?.StartLineNumber })
68+
pesterSymbol.ScriptRegion?.StartLineNumber
69+
},
70+
Serializer.Instance.JsonSerializer)
6871
}
6972
},
7073

@@ -79,11 +82,14 @@ private CodeLens[] GetPesterLens(PesterSymbolReference pesterSymbol, ScriptFile
7982
{
8083
Name = "PowerShell.RunPesterTests",
8184
Title = $"Debug {word}",
82-
Arguments = JArray.FromObject(new object[] {
85+
Arguments = JArray.FromObject(new object[]
86+
{
8387
scriptFile.DocumentUri,
8488
true /* No debug */,
8589
pesterSymbol.TestName,
86-
pesterSymbol.ScriptRegion?.StartLineNumber })
90+
pesterSymbol.ScriptRegion?.StartLineNumber
91+
},
92+
Serializer.Instance.JsonSerializer)
8793
}
8894
}
8995
};

src/PowerShellEditorServices/Services/CodeLens/ReferencesCodeLensProvider.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
using Microsoft.PowerShell.EditorServices.Services.TextDocument;
1212
using Microsoft.PowerShell.EditorServices.Utility;
1313
using Newtonsoft.Json.Linq;
14+
using OmniSharp.Extensions.LanguageServer.Protocol;
1415
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
16+
using OmniSharp.Extensions.LanguageServer.Protocol.Serialization;
1517

1618
namespace Microsoft.PowerShell.EditorServices.CodeLenses
1719
{
@@ -113,7 +115,7 @@ public CodeLens ResolveCodeLens(CodeLens codeLens, ScriptFile scriptFile)
113115

114116
acc.Add(new Location
115117
{
116-
Uri = PathUtils.ToUri(foundReference.FilePath),
118+
Uri = DocumentUri.FromFileSystemPath(foundReference.FilePath),
117119
Range = foundReference.ScriptRegion.ToRange()
118120
});
119121
}
@@ -133,7 +135,8 @@ public CodeLens ResolveCodeLens(CodeLens codeLens, ScriptFile scriptFile)
133135
scriptFile.DocumentUri,
134136
codeLens.Range.Start,
135137
referenceLocations
136-
})
138+
},
139+
Serializer.Instance.JsonSerializer)
137140
}
138141
};
139142
}

src/PowerShellEditorServices/Services/Symbols/SymbolReference.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,8 @@ public SymbolReference(
107107
/// </summary>
108108
/// <param name="symbolType">The higher level type of the symbol</param>
109109
/// <param name="scriptExtent">The script extent of the symbol</param>
110-
/// <param name="filePath">The file path of the symbol</param>
111-
/// <param name="sourceLine">The line contents of the given symbol (defaults to empty string)</param>
112-
public SymbolReference(SymbolType symbolType, IScriptExtent scriptExtent, string filePath = "", string sourceLine = "")
113-
: this(symbolType, scriptExtent.Text, scriptExtent, filePath, sourceLine)
110+
public SymbolReference(SymbolType symbolType, IScriptExtent scriptExtent)
111+
: this(symbolType, scriptExtent.Text, scriptExtent, scriptExtent.File, "")
114112
{
115113
}
116114
}

src/PowerShellEditorServices/Services/Symbols/Vistors/FindReferencesVisitor.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ public override AstVisitAction VisitFunctionDefinition(FunctionDefinitionAst fun
133133
StartLineNumber = startLineNumber,
134134
EndLineNumber = startLineNumber,
135135
StartColumnNumber = startColumnNumber,
136-
EndColumnNumber = startColumnNumber + functionDefinitionAst.Name.Length
136+
EndColumnNumber = startColumnNumber + functionDefinitionAst.Name.Length,
137+
File = functionDefinitionAst.Extent.File
137138
};
138139

139140
if (symbolRef.SymbolType.Equals(SymbolType.Function) &&

src/PowerShellEditorServices/Services/Symbols/Vistors/FindSymbolVisitor.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ public override AstVisitAction VisitFunctionDefinition(FunctionDefinitionAst fun
7474
StartLineNumber = functionDefinitionAst.Extent.StartLineNumber,
7575
EndLineNumber = functionDefinitionAst.Extent.EndLineNumber,
7676
StartColumnNumber = startColumnNumber,
77-
EndColumnNumber = startColumnNumber + functionDefinitionAst.Name.Length
77+
EndColumnNumber = startColumnNumber + functionDefinitionAst.Name.Length,
78+
File = functionDefinitionAst.Extent.File
7879
};
7980

8081
if (this.IsPositionInExtent(nameExtent))

src/PowerShellEditorServices/Services/Symbols/Vistors/FindSymbolsVisitor.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ public override AstVisitAction VisitFunctionDefinition(FunctionDefinitionAst fun
3636
StartLineNumber = functionDefinitionAst.Extent.StartLineNumber,
3737
EndLineNumber = functionDefinitionAst.Extent.EndLineNumber,
3838
StartColumnNumber = functionDefinitionAst.Extent.StartColumnNumber,
39-
EndColumnNumber = functionDefinitionAst.Extent.EndColumnNumber
39+
EndColumnNumber = functionDefinitionAst.Extent.EndColumnNumber,
40+
File = functionDefinitionAst.Extent.File
4041
};
4142

4243
SymbolType symbolType =

src/PowerShellEditorServices/Services/TextDocument/Handlers/DefinitionHandler.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using Microsoft.PowerShell.EditorServices.Services.Symbols;
1212
using Microsoft.PowerShell.EditorServices.Services.TextDocument;
1313
using Microsoft.PowerShell.EditorServices.Utility;
14+
using OmniSharp.Extensions.LanguageServer.Protocol;
1415
using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities;
1516
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
1617
using OmniSharp.Extensions.LanguageServer.Protocol.Server;
@@ -66,7 +67,7 @@ public async Task<LocationOrLocationLinks> Handle(DefinitionParams request, Canc
6667
new LocationOrLocationLink(
6768
new Location
6869
{
69-
Uri = PathUtils.ToUri(foundDefinition.FilePath),
70+
Uri = DocumentUri.FromFileSystemPath(foundDefinition.FilePath),
7071
Range = GetRangeFromScriptRegion(foundDefinition.ScriptRegion)
7172
}));
7273
}

src/PowerShellEditorServices/Services/TextDocument/Handlers/DocumentSymbolHandler.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
using Microsoft.PowerShell.EditorServices.Services.Symbols;
1717
using Microsoft.PowerShell.EditorServices.Services.TextDocument;
1818
using Microsoft.PowerShell.EditorServices.Utility;
19+
using OmniSharp.Extensions.LanguageServer.Protocol;
1920
using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities;
2021
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
2122
using OmniSharp.Extensions.LanguageServer.Protocol.Server;
@@ -74,7 +75,7 @@ public Task<SymbolInformationOrDocumentSymbolContainer> Handle(DocumentSymbolPar
7475
Kind = GetSymbolKind(r.SymbolType),
7576
Location = new Location
7677
{
77-
Uri = PathUtils.ToUri(r.FilePath),
78+
Uri = DocumentUri.FromFileSystemPath(r.FilePath),
7879
Range = GetRangeFromScriptRegion(r.ScriptRegion)
7980
},
8081
Name = GetDecoratedSymbolName(r)

src/PowerShellEditorServices/Services/TextDocument/Handlers/ReferencesHandler.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using Microsoft.PowerShell.EditorServices.Services.Symbols;
1212
using Microsoft.PowerShell.EditorServices.Services.TextDocument;
1313
using Microsoft.PowerShell.EditorServices.Utility;
14+
using OmniSharp.Extensions.LanguageServer.Protocol;
1415
using OmniSharp.Extensions.LanguageServer.Protocol.Client.Capabilities;
1516
using OmniSharp.Extensions.LanguageServer.Protocol.Models;
1617
using OmniSharp.Extensions.LanguageServer.Protocol.Server;
@@ -63,7 +64,7 @@ public Task<LocationContainer> Handle(ReferenceParams request, CancellationToken
6364
{
6465
locations.Add(new Location
6566
{
66-
Uri = PathUtils.ToUri(foundReference.FilePath),
67+
Uri = DocumentUri.FromFileSystemPath(foundReference.FilePath),
6768
Range = GetRangeFromScriptRegion(foundReference.ScriptRegion)
6869
});
6970
}

src/PowerShellEditorServices/Services/TextDocument/ScriptFile.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,10 @@ public string DocumentUri
6060
{
6161
get
6262
{
63+
// TODO: Have this be a DocumentUri type and stop having it be computed every time.
6364
return this.ClientFilePath == null
6465
? string.Empty
65-
: WorkspaceService.ConvertPathToDocumentUri(this.ClientFilePath);
66+
: OmniSharp.Extensions.LanguageServer.Protocol.DocumentUri.FromFileSystemPath(ClientFilePath)?.ToString();
6667
}
6768
}
6869

0 commit comments

Comments
 (0)