From 9c2f73a246db9cdfb8602c935dc4ec1a4d16a813 Mon Sep 17 00:00:00 2001 From: Mike Nolan Date: Tue, 11 Nov 2025 07:10:48 -0600 Subject: [PATCH] Add alacritty --- CrossLangShell.cs | 22 +++++++++++++++++++++- ViewModels/FileEditorViewModel.cs | 17 ++++++++++++++++- ViewModels/MainWindowViewModel.cs | 23 +++++++++++++++++++++-- 3 files changed, 58 insertions(+), 4 deletions(-) diff --git a/CrossLangShell.cs b/CrossLangShell.cs index fd57608..387a3c7 100644 --- a/CrossLangShell.cs +++ b/CrossLangShell.cs @@ -229,6 +229,7 @@ class CrossLangShell } if (OperatingSystem.IsLinux() || OperatingSystem.IsFreeBSD()) { + string alacritty = GetRealPath("alacritty"); string konsole = GetRealPath("konsole"); string gnome_terminal = GetRealPath("gnome-terminal"); string mate_terminal = GetRealPath("mate-terminal"); @@ -237,7 +238,26 @@ class CrossLangShell string xfce_terminal = GetRealPath("xfce4-terminal"); string xterm = GetRealPath("xterm"); - if (File.Exists(konsole)) + if (File.Exists(alacritty)) + { + using Process process = new Process(); + process.StartInfo.WorkingDirectory = workingDirectory; + process.StartInfo.FileName = alacritty; + process.StartInfo.UseShellExecute = false; + if (commandName.Length != 0) + { + if (keepOpen) + process.StartInfo.ArgumentList.Add("--hold"); + process.StartInfo.ArgumentList.Add("-e"); + process.StartInfo.ArgumentList.Add(commandName); + foreach (var arg in args) + { + process.StartInfo.ArgumentList.Add(arg); + } + } + process.Start(); + } + else if (File.Exists(konsole)) { using Process process = new Process(); process.StartInfo.WorkingDirectory = workingDirectory; diff --git a/ViewModels/FileEditorViewModel.cs b/ViewModels/FileEditorViewModel.cs index 4628d45..78db31b 100644 --- a/ViewModels/FileEditorViewModel.cs +++ b/ViewModels/FileEditorViewModel.cs @@ -80,8 +80,23 @@ public partial class FileEditorViewModel : ViewModelBase, ISavable try { //AssetLoader.Open(new Uri("avares://CrossLangDevStudio/Assets/crosslang.png") + if (Path.GetFileNameWithoutExtension(path).ToLower() == "dockerfile") + { + + _textMateInstallation.SetGrammarFile(_registryOptions.GetScopeByLanguageId("dockerfile")); + //_textMateInstallation.SetGrammar(_registryOptions.GetScopeByLanguageId(.Id)); + } + if (Path.GetFileNameWithoutExtension(path).ToLower() == "makefile") + { + + _textMateInstallation.SetGrammarFile(_registryOptions.GetScopeByLanguageId("makefile")); + //_textMateInstallation.SetGrammar(_registryOptions.GetScopeByLanguageId(.Id)); + } + else if (Path.GetFileNameWithoutExtension(path) == "docker-compose" && (ext == ".yml" || ext == ".yaml")) + _textMateInstallation.SetGrammarFile(_registryOptions.GetScopeByLanguageId("dockercompose")); + else + _textMateInstallation.SetGrammar(_registryOptions.GetScopeByLanguageId(_registryOptions.GetLanguageByExtension(ext).Id)); - _textMateInstallation.SetGrammar(_registryOptions.GetScopeByLanguageId(_registryOptions.GetLanguageByExtension(ext).Id)); } catch (Exception) { diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs index fe3412a..30382d3 100644 --- a/ViewModels/MainWindowViewModel.cs +++ b/ViewModels/MainWindowViewModel.cs @@ -556,7 +556,7 @@ public partial class MainWindowViewModel : ViewModelBase } } - static string[] FILE_EXTS = new string[]{ + static string[] FILE_EXTS = { ".tcross", ".json", ".txt", @@ -575,18 +575,37 @@ public partial class MainWindowViewModel : ViewModelBase ".ts", ".tsx", ".gitignore", - ".svg" + ".svg", + ".md", + ".yaml", + ".yml", + ".toml", + ".tcasm", + ".dart", + ".bat", + ".sh", + ".lua", + ".java", + ".ini", + ".go", + ".crossarchiveignore" }; public void OpenFile(string path) { bool isValid = false; string ext = Path.GetExtension(path).ToLower(); + foreach (var item in FILE_EXTS) { if (ext == item) isValid = true; } + if (Path.GetFileNameWithoutExtension(path).ToLower() == "dockerfile") + isValid = true; + if (Path.GetFileNameWithoutExtension(path).ToLower() == "makefile") + isValid = true; + if (!isValid) { OpenOtherFile(path, ext);