Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion internal/app/config_preference.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,10 @@ func (a *app) validateCodeEditor(cfg *preferencesConfig) {
switch cfg.Prefs.Editor.CodeEditor {
case prefs.CodeEditorVSC:
if _, err := exec.LookPath(prefs.CodeEditorVSCActual); err != nil {
if _, err := exec.LookPath(prefs.CodeEditorDMActual); err == nil {
if _, err := exec.LookPath(prefs.CodeEditorVSCodiumActual); err == nil {
// VSC invalid but VSCodium valid
cfg.Editor.CodeEditor = prefs.CodeEditorVSCodium
} else if _, err := exec.LookPath(prefs.CodeEditorDMActual); err == nil {
// VSC invalid but DM valid
cfg.Editor.CodeEditor = prefs.CodeEditorDM
} else if _, err := exec.LookPath(prefs.CodeEditorNPPActual); err == nil {
Expand All @@ -103,11 +106,31 @@ func (a *app) validateCodeEditor(cfg *preferencesConfig) {
}
log.Print(prefs.CodeEditorVSCActual + " could not be found in PATH. Code Editor pref changed to " + cfg.Editor.CodeEditor)
}
case prefs.CodeEditorVSCodium:
if _, err := exec.LookPath(prefs.CodeEditorVSCodiumActual); err != nil {
if _, err := exec.LookPath(prefs.CodeEditorVSCActual); err == nil {
// VSCodium invalid but VSC valid
cfg.Editor.CodeEditor = prefs.CodeEditorVSC
} else if _, err := exec.LookPath(prefs.CodeEditorDMActual); err == nil {
// VSCodium invalid but DM valid
cfg.Editor.CodeEditor = prefs.CodeEditorDM
} else if _, err := exec.LookPath(prefs.CodeEditorNPPActual); err == nil {
// VSCodium invalid but NPP valid
cfg.Editor.CodeEditor = prefs.CodeEditorNPP
} else {
// All invalid just default
cfg.Editor.CodeEditor = prefs.CodeEditorDefault
}
log.Print(prefs.CodeEditorVSCodiumActual + " could not be found in PATH. Code Editor pref changed to " + cfg.Editor.CodeEditor)
}
case prefs.CodeEditorDM:
if _, err := exec.LookPath(prefs.CodeEditorDMActual); err != nil {
if _, err := exec.LookPath(prefs.CodeEditorVSCActual); err == nil {
// DM invalid but VSC valid
cfg.Editor.CodeEditor = prefs.CodeEditorVSC
} else if _, err := exec.LookPath(prefs.CodeEditorVSCodiumActual); err == nil {
// DM invalid but VSCodium valid
cfg.Editor.CodeEditor = prefs.CodeEditorVSCodium
} else if _, err := exec.LookPath(prefs.CodeEditorNPPActual); err == nil {
// DM invalid but NPP valid
cfg.Editor.CodeEditor = prefs.CodeEditorNPP
Expand All @@ -122,6 +145,9 @@ func (a *app) validateCodeEditor(cfg *preferencesConfig) {
if _, err := exec.LookPath(prefs.CodeEditorVSCActual); err == nil {
// NPP invalid but VSC valid
cfg.Editor.CodeEditor = prefs.CodeEditorVSC
} else if _, err := exec.LookPath(prefs.CodeEditorVSCodiumActual); err == nil {
// NPP invalid but VSCodium valid
cfg.Editor.CodeEditor = prefs.CodeEditorVSCodium
} else if _, err := exec.LookPath(prefs.CodeEditorDMActual); err == nil {
// NPP invalid but DM valid
cfg.Editor.CodeEditor = prefs.CodeEditorDM
Expand Down
17 changes: 10 additions & 7 deletions internal/app/prefs/save.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,24 @@ var SaveFormats = []string{
}

const (
CodeEditorVSC = "Visual Studio Code"
CodeEditorDM = "Dreammaker"
CodeEditorNPP = "Notepad++"
CodeEditorDefault = "Default App"
CodeEditorVSC = "Visual Studio Code"
CodeEditorVSCodium = "VSCodium"
CodeEditorDM = "Dreammaker"
CodeEditorNPP = "Notepad++"
CodeEditorDefault = "Default App"

CodeEditorVSCActual = "code"
CodeEditorDMActual = "dreammaker"
CodeEditorNPPActual = "notepad++"
CodeEditorVSCActual = "code"
CodeEditorVSCodiumActual = "codium"
CodeEditorDMActual = "dreammaker"
CodeEditorNPPActual = "notepad++"

CodeEditorHelp = `These programs must be present in your system PATH to work when using Go to Definition on a prefab.
Default App and currently Dreammaker can only open to the relevant file, not the specific line number.`
)

var CodeEditors = []string{
CodeEditorVSC,
CodeEditorVSCodium,
CodeEditorDM,
CodeEditorNPP,
CodeEditorDefault,
Expand Down
4 changes: 4 additions & 0 deletions internal/app/ui/cpenvironment/menu.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ func (e *Environment) doGoToDefinition(n *treeNode) func() {
root := filepath.FromSlash(e.app.LoadedEnvironment().RootDir)
argument := path + ":" + fmt.Sprint(location.Line) + ":" + fmt.Sprint(location.Column)
command = exec.Command(prefs.CodeEditorVSCActual, root, "-g", argument)
case prefs.CodeEditorVSCodium:
root := filepath.FromSlash(e.app.LoadedEnvironment().RootDir)
argument := path + ":" + fmt.Sprint(location.Line) + ":" + fmt.Sprint(location.Column)
command = exec.Command(prefs.CodeEditorVSCodiumActual, root, "-g", argument)
case prefs.CodeEditorDM:
// No line/col support until https://www.byond.com/forum/post/2970625
command = exec.Command(prefs.CodeEditorDMActual, path)
Expand Down
Loading