BizHawk/BizHawk.Client.EmuHawk/tools/Lua/LuaAutocompleteInstaller.cs

130 lines
2.9 KiB
C#

using System;
using System.IO;
namespace BizHawk.Client.EmuHawk
{
public class LuaAutocompleteInstaller
{
#region API
public enum TextEditors { Sublime2, NotePad }
public bool IsInstalled(TextEditors editor)
{
switch (editor)
{
case TextEditors.Sublime2:
return IsSublimeInstalled();
case TextEditors.NotePad:
return IsNotepadInstalled();
}
return false;
}
public bool IsBizLuaRegistered(TextEditors editor)
{
switch (editor)
{
case TextEditors.Sublime2:
return IsBizLuaSublimeInstalled();
case TextEditors.NotePad:
return IsBizLuaNotepadInstalled();
}
return false;
}
public void InstallBizLua(TextEditors editor)
{
switch (editor)
{
case TextEditors.Sublime2:
InstallBizLuaToSublime2();
break;
case TextEditors.NotePad:
InstallBizLuaToNotepad();
break;
}
}
#endregion
private string AppDataFolder => Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
private bool IsSublimeInstalled()
{
// The most likely location of the app, eventually we should consider looking through the registry or installed apps as a more robust way to detect it;
string exePath = @"C:\Program Files\Sublime Text 2\sublime_text.exe";
if (File.Exists(exePath))
{
return true;
}
return false;
}
private bool IsNotepadInstalled()
{
// The most likely location of the app, eventually we should consider looking through the registry or installed apps as a more robust way to detect it;
string exePath = @"C:\Program Files (x86)\Notepad++\notepad++.exe";
if (File.Exists(exePath))
{
return true;
}
return false;
}
private string SublimeLuaPath = @"Sublime Text 2\Packages\Lua";
private string SublimeCompletionsFilename = "bizhawk.lua.sublime-completions";
private bool IsBizLuaSublimeInstalled()
{
var bizCompletions = Path.Combine(AppDataFolder, SublimeLuaPath, SublimeCompletionsFilename);
if (File.Exists(bizCompletions))
{
return true;
}
return false;
}
private string NotepadPath = "TODO";
private string NotepadAutoCompleteFileName = "TODO";
private bool IsBizLuaNotepadInstalled()
{
var bizCompletions = Path.Combine(AppDataFolder, NotepadPath, NotepadAutoCompleteFileName);
if (File.Exists(bizCompletions))
{
return true;
}
return false;
}
private void InstallBizLuaToSublime2()
{
var bizCompletions = Path.Combine(AppDataFolder, SublimeLuaPath, SublimeCompletionsFilename);
var text = GlobalWin.Tools.LuaConsole.LuaImp.Docs.ToSublime2CompletionList();
File.WriteAllText(bizCompletions, text);
}
private void InstallBizLuaToNotepad()
{
var bizAutocomplete = Path.Combine(AppDataFolder, NotepadPath, NotepadAutoCompleteFileName);
var text = GlobalWin.Tools.LuaConsole.LuaImp.Docs.ToNotepadPlusPlusAutoComplete();
// TODO
//File.WriteAllText(bizCompletions, text);
}
}
}