sannybuilder / dev

Sanny Builder Bug Tracker and Roadmap development
https://sannybuilder.com
49 stars 0 forks source link

Support for project folders 📂 #126

Open MatiDragon-YT opened 3 years ago

MatiDragon-YT commented 3 years ago

Which pull more ideas say? ok.

Could a system be added to the SB to create projects? Something that allows us to create, save and import projects or folders. Something that allows us to compile all the scripts in the project folder in the same CleoScript. In itself, doing that manually is not complicated at all, but over time it would save a lot of time and would be more amazing if those CleoScript were given the ability to create files .ini, .fxt, .dat and .ide, if they are not found in the game's CLEO folder (<game> / CLEO). This is not complicated to do either, but it would save a lot, a lot of time.

My idea would be for this to be displayed as a small hierarchy or vertical navigation pane for easy navigation between project files.

x87 commented 3 years ago

Totally agree. Projects were planned a long time ago. They would really help to organize large scripts. main.scm itself is a multi-file script so it naturally suits there.

Displaying directory structure is a bit problematic as Sanny is not able to work with Unicode characters and it somehow prevents Delphi components to display directory names with, say, Cyrillic letters. You just see a bunch of ?????? It can be avoided if your project files are located in English-only directories but still the issue exists.

MatiDragon-YT commented 3 years ago

@x87 I just noticed that the {$INCLUDE} directive looks for the files in this order:

  1. Directory of the file with the directive
  2. .\Sanny Builder 3\data\<game>
  3. .\Sanny Builder 3\
  4. .\<game>\

You could maybe create a folder called projects in the SB folder to save them. And each one could be created with random characters from A-Z with a file type index.txt inside these, to help in the registration of the files, also to know the name of the project and where you want the compiled file to end.

NicusorN5 commented 2 years ago

A translation unit generator for SCM can be trivial to implement in my opinion. For the source code I'm imagining something like:


{$INCLUDEFILE "\MissionDefHeader.txt",BOF} //Include this file at the beginning , the text file contains stuff like DEFINE MISSION X at @LabelOffset
{$INCLUDEFILE "...\Mission1.txt" ,EOF} //Include this file at the end of file , this text file contains a mission
{$INCLUDEFILE "...\Mission2.txt", EOF}  

:Main 
thread "MAIN"
.
.
.

This is how I would create this feature myself, what do ya say? I think it's a neat implementation.

THERE'S {$INCLUDE} ALREADY, I DIDN'T NOTICE THAT. IGNORE THIS POST

x87 commented 2 years ago

@NicusorN5 we have directive {$INCLUDE}, how is it different?

NicusorN5 commented 2 years ago

Sorry, I just noticed {$INCLUDE} actually does that, I thought {$INCLUDE} was {$USE}. My bad...