aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Views/HomeView.xaml.cs
blob: 36d261a2fafc94940ac624c95e159374f3ca966a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Tango.MachineStudio.Logging.Views
{
    /// <summary>
    /// Interaction logic for HomeView.xaml
    /// </summary>
    public partial class HomeView : UserControl
    {
        public HomeView()
        {
            InitializeComponent();
        }
    }
}
er { /// <summary> /// Gets the compiler language. /// </summary> public override CompilerLanguage Language => CompilerLanguage.C; /// <summary> /// Gets the protobuf compiler CLI arguments (without input/output files!). /// </summary> /// <returns></returns> protected override string GetProtoArguments() { return "--c_out"; } /// <summary> /// Gets the protobuf compiler CLI file name (override when using a compiler other than the default 'protoc.exe'). /// </summary> /// <returns></returns> /// <remarks> /// The compiler program must be located in the compilers folder. /// </remarks> protected override string GetProtoCompilerName() { return "protoc-c"; } /// <summary> /// Compiles all files in the specified folder recursively. /// </summary> /// <param name="sourceFolder">The source folder</param> /// <returns> /// Compilation result. /// </returns> public override CompilerFolderResult CompileFolder(string sourceFolder, params String[] includeFolders) { var temp = TemporaryManager.Default.CreateFolder(); PathHelper.CopyDirectory(sourceFolder, temp.Path, true); List<String> directories = Directory.GetDirectories(sourceFolder, "*", SearchOption.AllDirectories).Where(x => includeFolders == null || includeFolders.Length == 0 || includeFolders.Contains(Path.GetFileName(x))).ToList(); foreach (var dir in Directory.GetDirectories(temp.Path)) { if (!directories.Select(x => Path.GetFileName(x)).Contains(Path.GetFileName(dir))) { Directory.Delete(dir, true); } } foreach (var file in Directory.GetFiles(temp.Path, "*.proto", SearchOption.AllDirectories)) { String str = File.ReadAllText(file); var lines = str.ToLines(); lines.RemoveAll(x => x.Contains("package ")); for (int i = 0; i < lines.Count; i++) { if (!lines[i].Contains("import ") || lines[i].StartsWith("//")) { string[] wordsAndComments = lines[i].Split('/'); string lineWords = wordsAndComments.FirstOrDefault(); string[] words = lineWords.Split(' '); for (int j = 0; j < words.Length; j++) { words[j] = words[j].Split('.').LastOrDefault(); } lines[i] = String.Join(" ", words); } } str = String.Join(Environment.NewLine, lines); File.WriteAllText(file, str); } return base.CompileFolder(temp.Path); } } }