Posted: 10th Jan 2022 21:50
Not sure what you mean by toolbar, but yeah Atom definitely has a different way to do things than Geany, and so does VSCode. You have the command pallet (cmd-p or ctrl-p) and you can type whatever you need there, that's the Atom-ish way to do most things, besides hotkeys. Also yeah no broadcasting, although that's not Atom's fault, but my plugin's

Back to the IDE topic, I think VSCode/Atom can be configured to be beginner friendly out-of-the-box (implement whatever toolbar you want), as that would be quite important for AppGameKit, while giving power to advanced users. Also if we are talking ease of maintenance, maintaining a plugin written in a high level language should be easier than maintaining multiplatform C/C++ code.

I'm curious what other options are out there, though. I think having a plugin ecosystem for the editor would be pretty important, but maybe that's just me.
Posted: 10th Jan 2022 22:33
It is possible, you just have to right click, create file, create folder, or use ctrl-p, and type "file" or "folder" to create whatever you want. You can also drag and drop them around as you like.


Just to clarify, I was talking about the latest version of Geany. I know Atom can do those things, it's one of my main reasons for using it. If it wasn't for your plugin I might have stopped using AppGameKit a while ago due to the issues I have with both the Geany and Studio IDEs driving me nuts, so thanks for writing it!
Posted: 10th Jan 2022 22:59
Ohh sorry I was confused, good to know! Glad you liked my plugin

I also found it super weird to not be able to manage files using Geany.
Posted: 11th Jan 2022 2:52
Virtual Nomad wrote: "can atom broadcast? ..."


I got my editor to compile, run, debug (with breakpoints and watch vars) and broadcast but broadcast and debug work better in a threaded environment and from something that can access the stdin input of the broadcaster.exe for setting the broadcast IP and debug breakpoints and watch var lists, if Atom can do all that then I see no reason why it can not be used as a full editor.

Can it run a program in a thread and push strings to stdin??

A quick and dirty PureBasic example

Debug
+ Code Snippet
Procedure DebugProject(AGKInterpreter.s, AGKBroadcaster.s, ProjectPath.s)

  AGK_Interpreter=RunProgram(AGKInterpreter, "", "", #PB_Program_Open | #PB_Program_Write | #PB_Program_Read)
  WaitForInputIdle_(AGK_Interpreter, #INFINITE) 

  AGK_Broadcaster =  RunProgram(AGKBroadcaster, "-nowindow", "", #PB_Program_Open | #PB_Program_Write | #PB_Program_Read)
  WaitForInputIdle_(AGK_Broadcaster, #INFINITE) 

  If AGK_Broadcaster
    
        WriteProgramStringN(AGK_Broadcaster, "setproject "+ProjectPath)
        WriteProgramStringN(AGK_Broadcaster, "connect 127.0.0.1")
        WriteProgramStringN(AGK_Broadcaster, "breakpoint main.agc:88")
        WriteProgramStringN(AGK_Broadcaster, "watch mouse_x")
        WriteProgramStringN(AGK_Broadcaster, "watch mouse_y")
        WriteProgramStringN(AGK_Broadcaster, "debug")  

    While ProgramRunning(AGK_Broadcaster)
      
      If AvailableProgramOutput(AGK_Broadcaster)
        Output$ + ReadProgramString(AGK_Broadcaster) + Chr(13)
        Debug Output$
      EndIf
      
      
      ;WriteProgramStringN(AGK_Broadcaster, "step")       
      
      If ProgramRunning(AGK_Interpreter) = #False
        Break;
      EndIf

    Wend
    CloseProgram(AGK_Broadcaster)
  EndIf

EndProcedure


Broadcast
+ Code Snippet
Procedure BroadcastProject(AGKBroadcaster.s, ProjectPath.s, IPAddress.s)

  AGK_Broadcaster =  RunProgram(AGKBroadcaster, "-nowindow", "", #PB_Program_Open | #PB_Program_Write | #PB_Program_Read)

  If AGK_Broadcaster
        WriteProgramStringN(AGK_Broadcaster, "setproject "+ProjectPath)
        WriteProgramStringN(AGK_Broadcaster, "connect "+IPAddress)
        WriteProgramStringN(AGK_Broadcaster, "run")    
        
     While ProgramRunning(AGK_Broadcaster)
      
      If AvailableProgramOutput(AGK_Broadcaster)
        Output$ + ReadProgramString(AGK_Broadcaster) + Chr(13)
        Debug Output$
      EndIf
      
      ;WriteProgramStringN(AGK_Broadcaster, "step")       
      ;If ProgramRunning(AGK_Interpreter) = #False
       ; Break;
      ;EndIf

    Wend
    CloseProgram(AGK_Broadcaster)
  EndIf

EndProcedure


Both unfinished as my editor is on the back burner but they work, many hours of reverse engineering the IDE to get that far! lol