Jump to content

Saturn - yet another kOS IDE


Rosco P. Coltrane

Recommended Posts

Hello fellow kerb... kerbgrammers? Prograbals? Anyhow, I present to you:

6j3bf6.png

Why you ask? Why can't we just use Notepad++ with a template? Well, because:

- Saturn runs on Linux and Windows (Mac version is planned but I can't get my hands on a Mac for now).

- It has a "packing" functionality that allows you to "deploy" your program to, for example, the Archive for a quick and perhaps explosive debug session. Current options are: strip comments, strip leading spaces, and remove code based on custom tags.

- It sports it's own smart auto-completion that will present you with the options you want to see depending on what you are typing. It will even detect your variables and show you their stuff.

- You don't have to bother configuring it and it doesn't require installation. :)

Full list of features:

- Smart auto-completion will detect system and user variables and declared parameters and present the relevant options and information about them.

- Real-time syntax checking.

- A packing utility where you can setup different profiles so you can export your code to the Archive for a quick testing run or a final stripped version to save space. Right now this includes: remove comments, trim spaces, and remove code based on your own custom tags, so for example you can mark code that is used to debug, but you don't want on your final program.

- Fully customizable highlighter.

- Handy shortcuts to open/save from the Archive.

- Export your code to HTML or BB code to post on forums.

- kOS-aware length displayed (as opposed to just character count).

- Of course the usual editor stuff like comment chunks of code, indent/unindent code, normal/column selection, open file at cursor, and the like.

- File monitoring for external changes.

- Variable collision detection between your program and programs you call.

Some screenies:

Javascript is disabled. View full album

Version history:

  • 0.3 | 05-04-2014
    - Updated to Erendrake's kOS v0.12.
    - Syntax checking, baby!
  • 0.2.2
    - Brought up to date for Erendrake's kOS.
    - Color themes import/export.
    - File monitoring. Now you know if the file you're working on has been changed externally.
    - Minor stuff:

    - The dot is now properly colored when there's a number just before it.
    :D


    - No more mixed colors between system variables and variable members. Like "liquidfuel" being both a system variable and part of ship:liquidfuel. Now each one is recognized and colored properly.


    - No more "stage" being always highlighted as a keyword. Now it will be colored as keyword or variable correctly.


  • 0.2.1
    - Fixed update of file length on the status bar.
    - Fixed: Program Packer issue where the file exported to the archive would be named "<EMPTY>".
    - Fixed: remember open files (thanks to John FX).
    - Highlighter: Added options character spacing, reset to factory, and checkbox to show only monospaced fonts on the font selection dialog. Fixed: line number on the sample text should start at 0.
    - Fixed font antialiasing not being applied after settings change.
    - Fixed: Linux build is now 64 bits and not 32 (thanks to r00t).
  • 0.2
    - Bookmarks.
    - New variable collision detection:

    a) A real time scan that will go through programs called by yours, and show you variables with the same name.

    B)
    An option in the Program Packer for a "deep scan" version of this, that will not only look at the programs you run, but also at programs run by the programs you run.


    - Fixed bug that prevented the context menu from showing up.
    - Added "*" next to the file name for modified files.

A sort of a road map, or "what I do instead of counting sheep" (no promises!):

  • 0.3.x : 1<=x<=inf
    - Bug fixing for 0.3.
  • 0.4.0
    - Semantic checker (mixed var types in ops; typos in var, functions and program names).
    - Switch variable detection to new faster schema.
    - Better auto-completion for variables used with for loops.
  • 0.4.x : 1<=x<=inf
    - Bug fixing for 0.4.
  • 0.5.0
    - New messages window for packer output and others.
    - Get rid of variables panel in favor of markups in the code (like syntax and semantic checks) to denote collisions.
    - Search & replace take 2.
    - Programs and functions parameters hits.
    - Highlight & rename identifier under cursor.
  • 0.5.x : 1<=x<=inf
    - Bug fixing for 0.5.
  • 0.6
    - Variables in autocompletion list shown only after the line they are declared / used for the first time. Also, figure out what to do with variable scope and autocompletion (i.e. vars in for loops).
    - ?
  • 0.?
    - Jebnix support.

DOWNLOADS (v0.2.2)

Windows

Linux

Source code

License: released under LGPL.

Edited by Rosco P. Coltrane
Link to comment
Share on other sites

You had my curiosity, but now you have my attention. I am kind of fond of SolarLiner's kOS IDE, but if you claim you can offer things like comment stripping, you can bet I will give it a try.

As a note, you just really will need to change the Saturn kOS IDE header/logo, as that is a little too much '90's for my taste. If you agree and would like some input, I might just be able to help.

Link to comment
Share on other sites

You had my curiosity, but now you have my attention. I am kind of fond of SolarLiner's kOS IDE, but if you claim you can offer things like comment stripping, you can bet I will give it a try.

As a note, you just really will need to change the Saturn kOS IDE header/logo, as that is a little too much '90's for my taste. If you agree and would like some input, I might just be able to help.

a) Yes, Saturn can do things SolarLiner's app can't (for now at least).

and

B) I really suck at graphics. :D Tried three million designs but couldn't come up with one that looked nice. Any help is welcome!

Link to comment
Share on other sites

New version's up.

Added a variable collision detection while you type, so when you're coding you know if any of the programs that you call has a variable with the same name.

The packer now also has a "deep scan" for this, but instead of just looking inside programs you call, it will check in programs you call and programs called by those, and so on.

Link to comment
Share on other sites

Alright, you beat me ! I know I was kinda "not present" these days ... Lots of stuff happening around me IRL, so sorry. But this IDE looks real great ! All the UI customization was not my cup of tea, which you did, and the right way ;)

Also, the features are nice: where I only got a simple auto completion feature, you got dynamic variable watchdog, the "deep scan" feature that I was working on ... And your best feature of all: Linux build. My good ol' IDE is now useless.

Happy coding !

Link to comment
Share on other sites

Added a variable collision detection while you type, so when you're coding you know if any of the programs that you call has a variable with the same name.

Impressive. That can be very useful.

My good ol' IDE is now useless.

Does this mean you will be stopping development?

Link to comment
Share on other sites

Does this mean you will be stopping development?

What's the point of having two separate IDEs? I can't even compete with this one ^^

I will release the version I'm working on when it gets finished, and then we'll see if continuing the development is worth it.

Link to comment
Share on other sites

Hey, come on, you could still keep developing yours and out-feature mine. Not to mention the user base you already have.

I have quite a lot of ideas that I don't know how to implement, so you might have an edge there. :D

BTW, I had no idea you were working on deep scan and variable-aware completion. It's not like I went to do something trying to beat you.

Link to comment
Share on other sites

I like good competition :D

It is not really a "deep scan" but more a simple variable tracking feature in the auto completion list.

It's a shame you did that in Pascal (well, for me at least :P), i wanted to "merge" the two and make the best IDE EVAHHH ! if you were to accept this decision.

And the user base I have is not that big. I'm happy with the feedback I get, so it is quality user base I think :)

Anyway, Do what you want, steal my planned features if that inspires you at building this IDE. I would have been glad to help but I know absolutely nothing about Pascal ! ^^

Link to comment
Share on other sites

Well, yeah, I've been a Pascal junkie for ages, that's why I chose it to do this. That and the fact hat I knew I could compile the same source code for Win/Linux/Mac without any modifications.

But hey, you're welcome to join if you ever get the "I'd like to do things the old way" feeling (although you'd be surprised at what modern Pascal has to offer :D).

Link to comment
Share on other sites

The thing with Pascal is that most people used it only in first year at college to do simple things and their professors told them it was a language to learn programming. That and the fact that its syntax can be deceivingly simple.

Wrong! Pascal is a language that makes easy the easy stuff, and hard the hard stuff. And that's the way it should be... says me, of course. :D

These days the Free Pascal Compiler project and the Lazarus IDE have got to a point where you can easily write Pascal/Object Pascal/Concurrent Pascal code for Windows, Linux, Mac, Android, Java and a bunch of other platforms that I didn't even knew existed, easily and painless. They added so much stuff to the language that it's just A.M.A.Z.I.N.G.

Link to comment
Share on other sites

.NET is cross-platform via CLR or Mono: this is the language chosen by Unity, and the same source code (more or less two or three keywords, but that can be managed via some #if) is used for all the builds. But hey, I didn't know that Pascal could do this. I'm amazed. Keep up the good work !

Link to comment
Share on other sites

Hello, Nice editor.

I`ve noticed that when I choose a different font, sometimes the letter spacing gets very large. It doesn`t introduce spaces but adds a blank extra space to the end of every letter (Is it called kerning? I`m not sure) My eyes are not what they were and I find it almost impossible to see the difference between } and ) in the default font.

http://imageshack.us/a/img13/3415/l631.png

http://imageshack.us/a/img829/4659/ov0i.png

http://imageshack.us/a/img690/3750/59f4.png

http://imageshack.us/a/img545/2585/1blg.png

I am on windows 7 64 bit.

I have made these plain links to stop a wall of images, Imgur is blocked in the UK for sky users...

Link to comment
Share on other sites

Thanks for the report John.

Does it always happen with the same fonts? I mean, given a particular font, you always get the same effect or sometimes you don't?

If always, the reason for that is that the SynEdit editor component that I use is designed to work with code, and thus monospaced fonts (which Century Gothic is not). The editor uses the concept of a grid to draw the characters, each grid cell has the same width (the width of the widest character available for the font) because it expects a monospaced font.

That is something I cannot change. What I can change, however, is the spacing on the font to mitigate this problem a little. I might be adding this option in the next release, but it will always be a kind of trial and error for non-monospaced fonts because if you reduce the spacing too much then at some point you'll type "@" and it will overlap with another character. But hey, giving the user more options is always a good thing!

BTW: this led me to find a bug where the anti-aliasing of the fonts wasn't preserved. Thanks for that!

Edited by Rosco P. Coltrane
Link to comment
Share on other sites

Yeah... no, it's not going to work. Here's what happens with separation reduced with Century Gothic:

2vm6es0.png

You either get the characters too close, or too far away. The settings still could be useful for users that don't like the separation on a monospace font, but it won't help you. It's a SynEdit limitation, sorry.

Link to comment
Share on other sites

Woah, Pascal!? I've been away from this forum for a long time, and had to log in just to comment on this.

It seems Pascal isn't dead, after all! Impressive job mate, keep it up!

I'm testing it on Fedora 20 x64 and got a few warnings, but it seems to be working fine.

Link to comment
Share on other sites

Thanks r00t. What kind of warning did you get? And how do you see them? I'm kind of a newbie when it comes to Linux, so no idea about looking for warnings.

Any feedback is welcome as downloading and installing 10 different Linux distros is quite time consuming.

Also, I just installed Fedora just to see. I looks like my Linux build is 32 bits and Fedora will refuse to run it (my other Linux are probably 32 bits too). So I'll be recompiling and uploading shortly.

Link to comment
Share on other sites

Yeah... no, it's not going to work. Here's what happens with separation reduced with Century Gothic:

http://i42.tinypic.com/2vm6es0.png

You either get the characters too close, or too far away. The settings still could be useful for users that don't like the separation on a monospace font, but it won't help you. It's a SynEdit limitation, sorry.

Ok, fair enough. I have found a font that works. I`ll have a look for other monospaced fonts I like.

I found a couple more things though, I played around with pretty much every setting and made it look a lot worse and tried to find a `reset factory settings` button/option but could not see one.

Is there one or if there is not one could I ask for one in a future version please?

Also, the `remember open files` is not being remembered. I check it, go out of options then back in, and it is unchecked.

Link to comment
Share on other sites

I found a couple more things though, I played around with pretty much every setting and made it look a lot worse and tried to find a `reset factory settings` button/option but could not see one.

Is there one or if there is not one could I ask for one in a future version please?

I've been thinking in adding this. Right now the only way to revert to factory settings is to delete the Saturn.cfg file that is created in the same folder as your Saturn exe. But that obviously resets all other options as well...

Also, the `remember open files` is not being remembered. I check it, go out of options then back in, and it is unchecked.

Link to comment
Share on other sites

I get this error messages when I run it through the terminal (since you're from Argentina, you'll probably understand the pt-br warnings):

(Saturn:7263): Gtk-WARNING **: Não foi possível localizar a ferramenta de temas no module_path: "adwaita",

(Saturn:7263): Gtk-WARNING **: Não foi possível localizar a ferramenta de temas no module_path: "adwaita",
Gtk-Message: Failed to load module "pk-gtk-module"
Gtk-Message: Failed to load module "canberra-gtk-module"

Link to comment
Share on other sites

Little update, mostly bug fixing:

- Fixed update of file length on the status bar.

- Fixed: Program Packer issue where the file exported to the archive would be named "<EMPTY>".

- Fixed: remember open files (thanks to John FX).

- Highlighter: Added options character spacing and reset to factory. Fixed: line number on the sample text should start at 0.

- Fixed font antialiasing not being applied after settings change.

- Fixed: Linux build is now 64 bits and not 32 (thanks to r00t).

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...