You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-21 14:57:09 +00:00
C#: Add VisualStudio support
This commit is contained in:
@@ -19,9 +19,12 @@ namespace GodotTools.IdeMessaging
|
||||
private readonly string identity;
|
||||
|
||||
private string MetaFilePath { get; }
|
||||
private DateTime? metaFileModifiedTime;
|
||||
private GodotIdeMetadata godotIdeMetadata;
|
||||
private readonly FileSystemWatcher fsWatcher;
|
||||
|
||||
public string GodotEditorExecutablePath => godotIdeMetadata.EditorExecutablePath;
|
||||
|
||||
private readonly IMessageHandler messageHandler;
|
||||
|
||||
private Peer peer;
|
||||
@@ -123,7 +126,7 @@ namespace GodotTools.IdeMessaging
|
||||
MetaFilePath = Path.Combine(projectMetadataDir, GodotIdeMetadata.DefaultFileName);
|
||||
|
||||
// FileSystemWatcher requires an existing directory
|
||||
if (!File.Exists(projectMetadataDir))
|
||||
if (!Directory.Exists(projectMetadataDir))
|
||||
Directory.CreateDirectory(projectMetadataDir);
|
||||
|
||||
fsWatcher = new FileSystemWatcher(projectMetadataDir, GodotIdeMetadata.DefaultFileName);
|
||||
@@ -142,6 +145,13 @@ namespace GodotTools.IdeMessaging
|
||||
if (!File.Exists(MetaFilePath))
|
||||
return;
|
||||
|
||||
var lastWriteTime = File.GetLastWriteTime(MetaFilePath);
|
||||
|
||||
if (lastWriteTime == metaFileModifiedTime)
|
||||
return;
|
||||
|
||||
metaFileModifiedTime = lastWriteTime;
|
||||
|
||||
var metadata = ReadMetadataFile();
|
||||
|
||||
if (metadata != null && metadata != godotIdeMetadata)
|
||||
@@ -173,6 +183,13 @@ namespace GodotTools.IdeMessaging
|
||||
if (IsConnected || !File.Exists(MetaFilePath))
|
||||
return;
|
||||
|
||||
var lastWriteTime = File.GetLastWriteTime(MetaFilePath);
|
||||
|
||||
if (lastWriteTime == metaFileModifiedTime)
|
||||
return;
|
||||
|
||||
metaFileModifiedTime = lastWriteTime;
|
||||
|
||||
var metadata = ReadMetadataFile();
|
||||
|
||||
if (metadata != null)
|
||||
@@ -185,7 +202,8 @@ namespace GodotTools.IdeMessaging
|
||||
|
||||
private GodotIdeMetadata? ReadMetadataFile()
|
||||
{
|
||||
using (var reader = File.OpenText(MetaFilePath))
|
||||
using (var fileStream = new FileStream(MetaFilePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
|
||||
using (var reader = new StreamReader(fileStream))
|
||||
{
|
||||
string portStr = reader.ReadLine();
|
||||
|
||||
@@ -272,6 +290,7 @@ namespace GodotTools.IdeMessaging
|
||||
// ReSharper disable once UnusedMember.Global
|
||||
public async void Start()
|
||||
{
|
||||
fsWatcher.Created += OnMetaFileChanged;
|
||||
fsWatcher.Changed += OnMetaFileChanged;
|
||||
fsWatcher.Deleted += OnMetaFileDeleted;
|
||||
fsWatcher.EnableRaisingEvents = true;
|
||||
|
||||
Reference in New Issue
Block a user