From 1baf2d01999137a4021cd8e222bc6e38cc384f03 Mon Sep 17 00:00:00 2001 From: Kyra Zimmer Date: Sat, 21 Apr 2018 20:51:42 +0200 Subject: [PATCH 1/2] new build behaviour --- .../SublimeTextSourceCodeAccess.Build.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/SublimeTextSourceCodeAccess/SublimeTextSourceCodeAccess.Build.cs b/Source/SublimeTextSourceCodeAccess/SublimeTextSourceCodeAccess.Build.cs index 0c274e7..c7fc1f3 100644 --- a/Source/SublimeTextSourceCodeAccess/SublimeTextSourceCodeAccess.Build.cs +++ b/Source/SublimeTextSourceCodeAccess/SublimeTextSourceCodeAccess.Build.cs @@ -23,7 +23,7 @@ namespace UnrealBuildTool.Rules { public class SublimeTextSourceCodeAccess : ModuleRules { - public SublimeTextSourceCodeAccess(TargetInfo Target) + public SublimeTextSourceCodeAccess(ReadOnlyTargetRules Target): base(Target) { PrivateDependencyModuleNames.AddRange( new string[] From 7c59de26530781b7f4f068dfd7bfd775fa8200b3 Mon Sep 17 00:00:00 2001 From: Kyra Zimmer Date: Sat, 21 Apr 2018 21:02:40 +0200 Subject: [PATCH 2/2] updated accessor behaviour --- .../Private/SublimeTextSourceCodeAccessor.cpp | 38 +++++++++++++++++++ .../Private/SublimeTextSourceCodeAccessor.h | 2 + 2 files changed, 40 insertions(+) diff --git a/Source/SublimeTextSourceCodeAccess/Private/SublimeTextSourceCodeAccessor.cpp b/Source/SublimeTextSourceCodeAccess/Private/SublimeTextSourceCodeAccessor.cpp index 5323917..48f1871 100644 --- a/Source/SublimeTextSourceCodeAccess/Private/SublimeTextSourceCodeAccessor.cpp +++ b/Source/SublimeTextSourceCodeAccess/Private/SublimeTextSourceCodeAccessor.cpp @@ -30,6 +30,44 @@ bool FSublimeTextSourceCodeAccessor::CanAccessSourceCode() const return FPaths::FileExists(TEXT("/usr/bin/clang")); } +bool FSublimeTextSourceCodeAccessor::DoesSolutionExist() const +{ + FString FullPath; + if ( FDesktopPlatformModule::Get()->GetSolutionPath(FullPath) ) + { + return FPaths::FileExists(FullPath); + } + return false; +} + +bool FSublimeTextSourceCodeAccessor::OpenSolutionAtPath(const FString& InSolutionPath) +{ + FString FullPath = InSolutionPath; + if ( FPaths::FileExists(FullPath) ) + { + // Add this to handle spaces in path names. + const FString NewFullPath = FString::Printf(TEXT("\"%s\""), *FullPath); + + FString Editor = FString(TEXT("/usr/bin/subl")); + if ( FLinuxPlatformProcess::CreateProc( + *Editor, + *NewFullPath, + true, + true, + false, + nullptr, + 0, + nullptr, + nullptr + ).IsValid() ) + { + return true; + } + } + return false; +} + + FName FSublimeTextSourceCodeAccessor::GetFName() const { return FName("SublimeTextSourceCodeAccessor"); diff --git a/Source/SublimeTextSourceCodeAccess/Private/SublimeTextSourceCodeAccessor.h b/Source/SublimeTextSourceCodeAccess/Private/SublimeTextSourceCodeAccessor.h index 312c982..4cbccd2 100644 --- a/Source/SublimeTextSourceCodeAccess/Private/SublimeTextSourceCodeAccessor.h +++ b/Source/SublimeTextSourceCodeAccess/Private/SublimeTextSourceCodeAccessor.h @@ -33,6 +33,8 @@ class FSublimeTextSourceCodeAccessor : public ISourceCodeAccessor virtual FText GetNameText() const override; virtual FText GetDescriptionText() const override; virtual bool OpenSolution() override; + virtual bool OpenSolutionAtPath(const FString& InSolutionPath) override; + virtual bool DoesSolutionExist() const override; virtual bool OpenFileAtLine(const FString& FullPath, int32 LineNumber, int32 ColumnNumber = 0) override; virtual bool OpenSourceFiles(const TArray& AbsoluteSourcePaths) override; virtual bool SaveAllOpenDocuments() const override;