Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix unicode character uri bug #1143

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Handle Uris better for unicode characters
  • Loading branch information
TylerLeonhardt committed Jan 4, 2020
commit 4a54cc99ba2dfafbe346bb84e3f7f51579e49cf2
4 changes: 2 additions & 2 deletions src/PowerShellEditorServices/PowerShellEditorServices.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="3.1.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.0" />
<PackageReference Include="OmniSharp.Extensions.LanguageServer" Version="0.14.0" />
<PackageReference Include="OmniSharp.Extensions.LanguageServer" Version="0.14.1" />
<PackageReference Include="PowerShellStandard.Library" Version="5.1.1" />
<PackageReference Include="Serilog" Version="2.9.0" />
<PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
Expand All @@ -40,6 +40,6 @@
<PackageReference Include="System.Security.Principal" Version="4.3.0" />
<PackageReference Include="System.Security.Principal.Windows" Version="4.7.0" />
<PackageReference Include="UnixConsoleEcho" Version="0.1.0" />
<PackageReference Include="OmniSharp.Extensions.DebugAdapter.Server" Version="0.14.0" />
<PackageReference Include="OmniSharp.Extensions.DebugAdapter.Server" Version="0.14.1" />
</ItemGroup>
</Project>
2 changes: 1 addition & 1 deletion src/PowerShellEditorServices/Server/PsesLanguageServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public async Task StartAsync()
// Grab the workspace path from the parameters
if (request.RootUri != null)
{
workspaceService.WorkspacePath = workspaceService.ResolveFilePath(request.RootUri.ToString());
workspaceService.WorkspacePath = workspaceService.ResolveFileUri(request.RootUri).OriginalString;
}

// Set the working directory of the PowerShell session to the workspace path
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public async Task SetSelectionAsync(BufferRange selectionRange)
public EditorContext ConvertClientEditorContext(
ClientEditorContext clientContext)
{
ScriptFile scriptFile = _workspaceService.CreateScriptFileFromFileBuffer(
ScriptFile scriptFile = _workspaceService.GetFileBuffer(
clientContext.CurrentFilePath,
clientContext.CurrentFileContent);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public void SetCapability(CodeActionCapability capability)

public async Task<CommandOrCodeActionContainer> Handle(CodeActionParams request, CancellationToken cancellationToken)
{
IReadOnlyDictionary<string, MarkerCorrection> corrections = await _analysisService.GetMostRecentCodeActionsForFileAsync(request.TextDocument.Uri.ToString());
IReadOnlyDictionary<string, MarkerCorrection> corrections = await _analysisService.GetMostRecentCodeActionsForFileAsync(request.TextDocument.Uri.OriginalString);

if (corrections == null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,7 @@ CodeLensRegistrationOptions IRegistration<CodeLensRegistrationOptions>.GetRegist

public Task<CodeLensContainer> Handle(CodeLensParams request, CancellationToken cancellationToken)
{
ScriptFile scriptFile = _workspaceService.GetFile(
request.TextDocument.Uri.ToString());
ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);

CodeLens[] codeLensResults = ProvideCodeLenses(scriptFile);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,7 @@ public async Task<CompletionList> Handle(CompletionParams request, CancellationT
int cursorLine = (int) request.Position.Line + 1;
int cursorColumn = (int) request.Position.Character + 1;

ScriptFile scriptFile =
_workspaceService.GetFile(
request.TextDocument.Uri.ToString());
ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);

CompletionResults completionResults =
await GetCompletionsInFileAsync(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,7 @@ public TextDocumentRegistrationOptions GetRegistrationOptions()

public async Task<LocationOrLocationLinks> Handle(DefinitionParams request, CancellationToken cancellationToken)
{
ScriptFile scriptFile =
_workspaceService.GetFile(
request.TextDocument.Uri.ToString());
ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);

SymbolReference foundSymbol =
_symbolsService.FindSymbolAtLocation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public Task<DocumentHighlightContainer> Handle(
DocumentHighlightParams request,
CancellationToken cancellationToken)
{
ScriptFile scriptFile = _workspaceService.GetFile(PathUtils.FromUri(request.TextDocument.Uri));
ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);

IReadOnlyList<SymbolReference> symbolOccurrences = _symbolsService.FindOccurrencesInFile(
scriptFile,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,7 @@ public TextDocumentRegistrationOptions GetRegistrationOptions()

public Task<SymbolInformationOrDocumentSymbolContainer> Handle(DocumentSymbolParams request, CancellationToken cancellationToken)
{
ScriptFile scriptFile =
_workspaceService.GetFile(
request.TextDocument.Uri.ToString());
ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);

IEnumerable<SymbolReference> foundSymbols =
this.ProvideDocumentSymbols(scriptFile);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public Task<Container<FoldingRange>> Handle(FoldingRangeRequestParam request, Ca
// Perhaps a better option would be to parse the contents of the document as a string
// as opposed to reading a file but the scenario of "no backing file" probably doesn't
// warrant the extra effort.
if (!_workspaceService.TryGetFile(request.TextDocument.Uri.ToString(), out ScriptFile scriptFile)) { return null; }
if (!_workspaceService.TryGetFile(request.TextDocument.Uri, out ScriptFile scriptFile)) { return null; }

var result = new List<FoldingRange>();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public TextDocumentRegistrationOptions GetRegistrationOptions()

public async Task<TextEditContainer> Handle(DocumentFormattingParams request, CancellationToken cancellationToken)
{
var scriptFile = _workspaceService.GetFile(request.TextDocument.Uri.ToString());
var scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);
var pssaSettings = _configurationService.CurrentSettings.CodeFormatting.GetPSSASettingsHashtable(
(int)request.Options.TabSize,
request.Options.InsertSpaces);
Expand Down Expand Up @@ -124,7 +124,7 @@ public TextDocumentRegistrationOptions GetRegistrationOptions()

public async Task<TextEditContainer> Handle(DocumentRangeFormattingParams request, CancellationToken cancellationToken)
{
var scriptFile = _workspaceService.GetFile(request.TextDocument.Uri.ToString());
var scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);
var pssaSettings = _configurationService.CurrentSettings.CodeFormatting.GetPSSASettingsHashtable(
(int)request.Options.TabSize,
request.Options.InsertSpaces);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,7 @@ public TextDocumentRegistrationOptions GetRegistrationOptions()

public async Task<Hover> Handle(HoverParams request, CancellationToken cancellationToken)
{
ScriptFile scriptFile =
_workspaceService.GetFile(
request.TextDocument.Uri.ToString());
ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);

SymbolDetails symbolDetails =
await _symbolsService.FindSymbolDetailsAtLocationAsync(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,7 @@ public TextDocumentRegistrationOptions GetRegistrationOptions()

public async Task<LocationContainer> Handle(ReferenceParams request, CancellationToken cancellationToken)
{
ScriptFile scriptFile =
_workspaceService.GetFile(
request.TextDocument.Uri.ToString());
ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);

SymbolReference foundSymbol =
_symbolsService.FindSymbolAtLocation(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,7 @@ public SignatureHelpRegistrationOptions GetRegistrationOptions()

public async Task<SignatureHelp> Handle(SignatureHelpParams request, CancellationToken cancellationToken)
{
ScriptFile scriptFile =
_workspaceService.GetFile(
request.TextDocument.Uri.ToString());
ScriptFile scriptFile = _workspaceService.GetFile(request.TextDocument.Uri);

ParameterSetSignatures parameterSets =
await _symbolsService.FindParameterSetsInFileAsync(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public TextDocumentHandler(

public Task<Unit> Handle(DidChangeTextDocumentParams notification, CancellationToken token)
{
ScriptFile changedFile = _workspaceService.GetFile(notification.TextDocument.Uri.ToString());
ScriptFile changedFile = _workspaceService.GetFile(notification.TextDocument.Uri);

// A text change notification can batch multiple change requests
foreach (TextDocumentContentChangeEvent textChange in notification.ContentChanges)
Expand Down Expand Up @@ -85,7 +85,7 @@ public Task<Unit> Handle(DidOpenTextDocumentParams notification, CancellationTok
{
ScriptFile openedFile =
_workspaceService.GetFileBuffer(
notification.TextDocument.Uri.ToString(),
notification.TextDocument.Uri,
notification.TextDocument.Text);

// TODO: Get all recently edited files in the workspace
Expand All @@ -106,7 +106,7 @@ TextDocumentRegistrationOptions IRegistration<TextDocumentRegistrationOptions>.G
public Task<Unit> Handle(DidCloseTextDocumentParams notification, CancellationToken token)
{
// Find and close the file in the current session
var fileToClose = _workspaceService.GetFile(notification.TextDocument.Uri.ToString());
var fileToClose = _workspaceService.GetFile(notification.TextDocument.Uri);

if (fileToClose != null)
{
Expand All @@ -120,9 +120,7 @@ public Task<Unit> Handle(DidCloseTextDocumentParams notification, CancellationTo

public async Task<Unit> Handle(DidSaveTextDocumentParams notification, CancellationToken token)
{
ScriptFile savedFile =
_workspaceService.GetFile(
notification.TextDocument.Uri.ToString());
ScriptFile savedFile = _workspaceService.GetFile(notification.TextDocument.Uri);

if (savedFile != null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,14 @@ private bool IsQueryMatch(string query, string symbolName)
return symbolName.IndexOf(query, StringComparison.OrdinalIgnoreCase) >= 0;
}

private static string GetFileUri(string filePath)
{
// If the file isn't untitled, return a URI-style path
return
!filePath.StartsWith("untitled") && !filePath.StartsWith("inmemory")
? new Uri("file://" + filePath).AbsoluteUri
: filePath;
}
// private static string GetFileUri(string filePath)
// {
// // If the file isn't untitled, return a URI-style path
// return
// !filePath.StartsWith("untitled") && !filePath.StartsWith("inmemory")
// ? new Uri("file://" + filePath).AbsoluteUri
// : filePath;
// }

private static Range GetRangeFromScriptRegion(ScriptRegion scriptRegion)
{
Expand Down
Loading