Jump to content

Saturn - yet another kOS IDE


Rosco P. Coltrane

Recommended Posts

  • 2 weeks later...

I have looked at that image a few times over that last few days and only just now did I see the missing period and missing number after the 4+.

Error checking! Sweet!

Could I ask for the search and replace feature to continue searching after replacing? Currently I have to re-search for every match unless I want to do a blanket replace all. I`d like it to continue to the next match and only exit if I press cancel.

Also, you might be interested in this

http://forum.kerbalspaceprogram.com/threads/65005-Jebnix-A-kOS-Alternative

It looks promising.

Edited by John FX
Link to comment
Share on other sites

Arguably a bit late for a reaction, but: Huh? What did I miss?

Well, back then, well, actually today too, people doesn't know what to do with kOS. The author haven't shown up after the 0.23 update and kOS doesn't work with it. Some are using 0.22, some are patching the code to work with 0.23 and there are talks about forking the project and moving on with development, some are actually doing just that.

Could I ask for the search and replace feature to continue searching after replacing? Currently I have to re-search for every match unless I want to do a blanket replace all. I`d like it to continue to the next match and only exit if I press cancel.

Search & replace is something that I definitely have to revisit at some point. It was made in a rush and I'm not satisfied with it neither.

Also, you might be interested in this

http://forum.kerbalspaceprogram.com/threads/65005-Jebnix-A-kOS-Alternative

It looks promising.

That certainly looks promising. My only fear here is that this fork frenzy will lead to a lot of different versions with lots of different language constructs that will make developing Saturn a lot harder... But we'll see.

Link to comment
Share on other sites

Well, back then, well, actually today too, people doesn't know what to do with kOS. The author haven't shown up after the 0.23 update and kOS doesn't work with it. Some are using 0.22, some are patching the code to work with 0.23 and there are talks about forking the project and moving on with development, some are actually doing just that.

That certainly looks promising. My only fear here is that this fork frenzy will lead to a lot of different versions with lots of different language constructs that will make developing Saturn a lot harder... But we'll see.

I also am worried that there will be more versions of KOS than there are programs that run on it. I much prefer a single thread of development rather than multiple ones that run parallel to each other. Jebnix though is being written fresh as opposed to being a fork and looks to have some quite good features. They are trying to have backward compatibility with KOS while keeping development active and expanding the feature set.

I am keeping an eye on it.

Link to comment
Share on other sites

  • 1 month later...

Well, I'd say "dormant". Quite frankly I became a little dissatisfied with the situation. Too many forks to keep track. Erendrakes' version seems to be the most popular, though.

So right now it's a "wait and see" feeling. More probably Jebnix. But who knows. I had a pretty good roadmap planned starting with 0.3 that would lead to supporting a bunch of things, some of them dependent on the fork, hence my feelings towards this thing... Support for more than one KOS variant was going to be active in 0.4 via a simple menu option. But then it looked like it should be something quicker so I moved it to 0.3 and... my pretty roadmap became more of a wish list than anything. :D

Link to comment
Share on other sites

Aren't Jebnix and erendrake's the two remaining versions? Erendrake does a good job of gobbling up all kinds of features from other forks, eliminating their usefulness. I am not sure about Jebnix, but as it has not been release, that is not a concern yet.

Will you be supporting erendrake's version? I would very much love to use a good IDE again :)

Link to comment
Share on other sites

  • 2 weeks later...

Ok, so here's a little update.

Originally, I was working on version 0.3 when the forkapalooza started. The main feature of that version was going to be real-time syntax checking, so you would get a red underline in places where you messed up syntactically speaking. That required a TON of changes so including support for different forks into the mix was out of the question... and since all of the sudden we had lots of them, I decided to stop for a while and see how things developed.

Now all that is still in the future, mind you, but for now I decided to go with erendrake's kOS. So the code have been brought in line with that particular fork and renamed 0.2.2. This is essentially version 0.3 with syntax checking disabled. Here's what's new:

- Highlighter themes. Besides the 3 pre-made schemes (that you can customize like always), you can now create your own schemes and export and import them at will. Good for backups.

- File monitoring. Now you'll know if the file you are editing has been modified externally.

- Interesting byproducts of the highlighter rewrite:

- 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.

Since I haven't been following this fork (or any other for that matter) very closely, I had quite a catch up to do. So in addition to the normal introduction of bugs... erm I mean development process, it is entirely possible that I overlooked half the mod. :) So please let me know when you find any screw up. :P

Link to comment
Share on other sites

Very lovely. Despite the old version being usable, a properly working version is of course much preferred. This will be downloaded as soon as I reinstall my OS.

I honestly lost track of the forks. Is Erendrake the only one or is it kind of the "main" one? Could you update me on this?

Erendrake's/Marianoapp's (they joined forces) is the only one currently in use that I know of. There is one kOS alternative, Jebnix, in development by Woodywood, but that will probably take a while to arrive (and it looks like both will continue to share a lot of syntax). There are a couple of non-kOS alternatives that use varying languages. I guess those are not relevant to our interests :D

I feel going with Erendrake's version is a safe way to go at the moment.

Link to comment
Share on other sites

  • 1 month later...
hmmm... At work right now, but I'll check when I get home. Couple of questions:

a) Where's the archive located? Say Desktop, program files, home dir if Linux?

The KSP folder is on my Desktop as /home/*USERNAME*/Desktop/KSP/KSP_0.23/KSP_0 .23_linux (4 kOS debug)/Plugins/PluginData/Archive

B) Do you have access rights to that folder?

Yes, I quadruple checked every folder and subfolder in both the KSP and Saturn directory and they are both set to the most permissive read and write settings. Problem is, even when I try to go to the settings menu on Saturn I get this little message.

XkFLgvS.png

Link to comment
Share on other sites

What a nasty bug this was... Not mine, but the FPC compiler. Solved now and uploaded the new version.

Thanks a lot OxalysResourceConsortium.

FPC compiler? So what did you have to do? Use a new compiler?

EDIT: Just tested it, works fine so far. Thanks for the quick fix, appreciate the hard work. Keep it up.

Edited by OxalysResourceConsortium
Link to comment
Share on other sites

The compiler has some optimization options that you can enable to make your app faster and/or smaller, the highest level is both aggressive and experimental. Some of the code obviously doesn't get along very well with such optimization. :) I should investigate and report back to them as that's the primary object of enabling those options to the user.

Link to comment
Share on other sites

Here's something you may find useful to help update the syntax highlighter. I built this by running a bash shell script pulling stuff out of the kOS C# code downloaded from github. I did it because I want to have a VIM syntax highlighter and I was tired of trying to update it by reading the code by eyeball.

It's *almost* got everything. There's a few suffix terms it doesn't have because they were processed in the C# code using a different sort of code design (I was looking for:

case "SUFFIXNAME":

in the file, but sometimes the code hands off the task of looking at the value to a deeper function, and my bash grep/sed tools didn't catch those.)


# terms.txt
# This file is automatically generated by Autogen.sh - do not edit manually.
#

[SYNTAX_TERMINALS]

+
-
*
/
^
E
AND
OR
TRUE
FALSE
>=
<=
=
>
<
SET
TO
IF
ELSE
UNTIL
LOCK
UNLOCK
PRINT
AT
ON
TOGGLE
WAIT
WHEN
THEN
OFF
STAGE
CLEARSCREEN
ADD
REMOVE
LOG
BREAK
DECLARE
PARAMETER
SWITCH
COPY
FROM
RENAME
VOLUME
FILE
DELETE
EDIT
RUN
LIST
REBOOT
SHUTDOWN
FOR
UNSET
BATCH
DEPLOY
(
)
{
}
,
:
IN
#
ALL
[A-Z_][A-Z0-9_]*
[0-9]+
[0-9]*.[0-9]+
@?""""""
[^""]*""
.
^$
S+
//[^N]*N?

[BOUND IDENTIFIERS]

ABORT
AG1
AG10
AG2
AG3
AG4
AG5
AG6
AG7
AG8
AG9
BRAKES
CHUTES
GEAR
LEGS
LIGHTS
PANELS
RCS
SAS
CONFIG
LOADDISTANCE
WARP
ALT_APOAPSIS
ALT_PERIAPSIS
ALT_RADAR
ANGULARVELOCITY
COMMRANGE
ENCOUNTER
ETA_APOAPSIS
ETA_PERIAPSIS
ETA_TRANSITION
INCOMMRANGE
MISSIONTIME
NEXTNODE
OBT
SHIP
STAGE
STATUS
TIME
VESSELNAME
TARGET
HEADING
VESSELNAME
SESSIONTIME
VERSION
VOLUME:NAME

[SUFFIXES]

[Suffixes of BodyAtmosphere]
:BODY
:EXISTS
:HASOXYGEN
:SCALE
:SEALEVELPRESSURE
:HEIGHT

[Suffixes of BodyTarget]
:NAME
:DESCRIPTION
:MASS
:POSITION
:ALTITUDE
:APOAPSIS
:PERIAPSIS
:RADIUS
:MU
:ATM
:VELOCITY
:DISTANCE
:BODY

[Suffixes of Config]

[Suffixes of ConstantValue]
:G
:E
:E
:PI

[Suffixes of Direction]
:PITCH
:YAW
:ROLL
:VECTOR

[Suffixes of ElementValue]
:NAME
:UID
:PARTCOUNT
:RESOURCES

[Suffixes of FlightControl]
:YAW
:PITCH
:ROLL
:FORE
:STARBOARD
:TOP
:ROTATION
:TRANSLATION
:NEUTRAL
:MAINTHROTTLE
:WHEELTHROTTLE
:WHEELSTEER
:BOUND

[Suffixes of GeoCoordinates]
:LAT
:LNG
:DISTANCE
:HEADING
:BEARING

[Suffixes of ListValue]
:ADD
:CONTAINS
:REMOVE

[Suffixes of Node]
:DELTAV
:BURNVECTOR
:ETA
:PROGRADE
:RADIALOUT
:NORMAL
:ORBIT

[Suffixes of Orbit]
:APOAPSIS
:PERIAPSIS
:BODY
:PERIOD
:INCLINATION
:ECCENTRICITY
:SEMIMAJORAXIS
:SEMIMINORAXIS
:TRANSITION
:PATCHES

[Suffixes of DockingPortValue]
:STATE
:ORIENTATION
:DOCKEDVESSELNAME
:TARGETABLE

[Suffixes of EngineValue]

[Suffixes of PartValue]
:CONTROLFROM

[Suffixes of SensorValue]
:ACTIVE
:TYPE
:READOUT

[Suffixes of ResourceValue]
:NAME
:AMOUNT
:CAPACITY

[Suffixes of SpecialValue]

[Suffixes of StageValues]

[Suffixes of Timespan]

[Suffixes of Vector]
:X
:Y
:Z
:MAG
:VEC
:NORMALIZED
:SQRMAGNITUDE

[Suffixes of VersionInfo]
:MAJOR
:MINOR

[Suffixes of VesselSensors]
:ACC
:PRES
:TEMP
:GRAV
:LIGHT

[Suffixes of VesselTarget]
:PACKDISTANCE

[Suffixes of VesselVelocity]
:ORBIT
:SURFACE
:SURFACEHEADING

[FUNCTIONS]

BUILDLIST
ABS
CEILING
FLOOR
LN
LOG10
MAX
MIN
MOD
RANDOM
ROUND
ROUNDNEAREST
SQRT
VANG, VECTORANGLE
VCRS, VECTORCROSSPRODUCT
VDOT, VECTORDOTPRODUCT
VXCL, VECTOREXCLUDE
ADD
CLEARSCREEN
LOGFILE
PRINT
PRINTAT
REBOOT
REMOVE
RUN
SHUTDOWN
STAGE
TOGGLEFLYBYWIRE
COPY
DELETE
RENAME
SWITCH
PRINTLIST
BODY
BODYATMOSPHERE
CONSTANT
HEADING
LATLNG
LIST
NODE
Q
R
V
VESSEL
ARCCOS
ARCSIN
ARCTAN
ARCTAN2
COS
SIN
TAN

Note: I think the underscores in terms like ETA_APOAPSIS are a way of encoding a "fake" suffixed term - in which the underscore in the source code is really a placeholder for a colon lookup, but the thing to the left of the colon "the ETA:" isn't really a real object so therefore APOAPSIS isn't really a real suffix, even thought it looks like one to the user and should be highlighted like one in the editor.

Edited by Steven Mading
Link to comment
Share on other sites

:)

Interesting, interesting indeed. Thanks!

I tinkered with this idea too. I remember I hacked some code together that extracted suffixes. Like you, I also run into the different syntax problem and some suffixes wouldn't be extracted at all. And then apparently I deleted the whole kOS folder with it inside...

This is something I have to revisit at some point. No doubts.

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...