139 lines
3.0 KiB
C#
139 lines
3.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Newtonsoft.Json;
|
|
|
|
using BizHawk.Client.Common;
|
|
|
|
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
|
|
{
|
|
get { return 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);
|
|
}
|
|
}
|
|
}
|