Skip to content

Commit 401fd3f

Browse files
authored
Merge pull request #143 from genericptr/escape-workspace-paths
Escape workspace paths
2 parents 9d42814 + 85d9ef6 commit 401fd3f

1 file changed

Lines changed: 15 additions & 7 deletions

File tree

src/serverprotocol/PasLS.General.pas

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ procedure TInitialize.SetPlatformDefaults(CodeToolsOptions: TCodeToolsOptions);
156156

157157
{ Find all sub directories which contain Pascal source files }
158158

159-
function TInitialize.IsPasExt(Const aExtension: String): Boolean;
159+
function TInitialize.IsPasExt(const aExtension: String): Boolean;
160160
var
161161
E : String;
162162
begin
@@ -214,7 +214,7 @@ procedure TInitialize.FindPascalSourceDirectories(RootPath: String; Results: TSt
214214
exit;
215215

216216
havePas:=False;
217-
if FindFirst(RootPath+AllFilesMask, faAnyFile, Info) = 0 then
217+
if FindFirst(RootPath + AllFilesMask, faAnyFile, Info) = 0 then
218218
try
219219
repeat
220220
if ((Info.Attr and faDirectory) <> 0) and not((Info.Name = '.') or (Info.Name = '..')) then
@@ -352,6 +352,15 @@ function TInitialize.CheckProgramSetting: Boolean;
352352
end;
353353

354354
function TInitialize.Process(var Params : TLSPInitializeParams): TInitializeResult;
355+
356+
function EscapeFileName(const Name: String): String;
357+
begin
358+
if Pos(' ', Name) > 0 then
359+
Result := '"' + Name + '"'
360+
else
361+
Result := Name;
362+
end;
363+
355364
var
356365
Proj, Option, aPath, ConfigPath: String;
357366
CodeToolsOptions: TCodeToolsOptions;
@@ -476,10 +485,10 @@ function TInitialize.Process(var Params : TLSPInitializeParams): TInitializeResu
476485
for aPath in WorkspacePaths do
477486
begin
478487
if ServerSettings.includeWorkspaceFoldersAsUnitPaths then
479-
FPCOptions += ['-Fu' + ExpandFileName(aPath)];
488+
FPCOptions += ['-Fu' + EscapeFileName(ExpandFileName(aPath))];
480489

481490
if ServerSettings.includeWorkspaceFoldersAsIncludePaths then
482-
FPCOptions += ['-Fi' + ExpandFileName(aPath)];
491+
FPCOptions += ['-Fi' + EscapeFileName(ExpandFileName(aPath))];
483492
end;
484493

485494
CodeToolsOptions.FPCOptions := JoinString(FPCOptions, ' ');
@@ -503,7 +512,7 @@ function TInitialize.Process(var Params : TLSPInitializeParams): TInitializeResu
503512
begin
504513
Init(CodeToolsOptions);
505514
IdentifierList.SortForHistory := True;
506-
IdentifierList.SortMethodForCompletion:=icsScopedAlphabetic;
515+
IdentifierList.SortMethodForCompletion := icsScopedAlphabetic;
507516
end;
508517

509518
Result.Capabilities.ApplySettings(ServerSettings);
@@ -594,9 +603,8 @@ procedure TServerCapabilitiesHelper.ApplySettings(settings: TServerSettings);
594603

595604
function TLSPInitializeParams.createInitializationOptions: TInitializationOptions;
596605
begin
597-
Result:=TServerSettings.Create;
606+
result := TServerSettings.Create;
598607
end;
599608

600-
601609
end.
602610

0 commit comments

Comments
 (0)