Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.
Hello! For the last two and a half weeks I have been working on a project a few of you may have heard me talking about on IRC, called KryptonIDE.
I'll be referring to it as KryEdit because that's its TI-OS name, and the name I originally came up with.
KryEdit (named such because my favorite element is Krypton) aims to be a program editor that solves most (if not all) of our problems with TI's program editor. I am aiming to have it be very user customizable, meaning that you can change most of how the program looks and works. This includes colors, fonts, font sizes, etc.
I decided to make this because, after many hours of experience with TI's own program editor, I've gathered a long mental list of things that I look at and say "I can do better." I started with a quick proof of concept program in ICE, finding programs, sorting them into an alphabetical list, and displaying a program's contents to the screen. I found that it was ridiculously easy to make something that worked faster than TI's own program editor, and this gave me a lot of promise and led me to begin this project in C.
To make this clear, I'll say it now: This program editor is intended for editing TI-BASIC and ICE programs, just like TI's editor. The goal is to create something faster, more user-changeable, and more useful.
Here is a list of planned features:
-1) Syntax highlighting (with custom colors)
-Makes it easier to tell what code is what.
-2) Indentation
-You'll be able to better understand what code is inside which statement.
-3) Custom fonts
-Custom fonts of sizes up to 8x8 pixels per character will be supported, and menus will scale accordingly for smaller fonts.
-Fonts will be stored into an archived or un-archived appvar and will be loaded on program launch, so that they don't eat your precious RAM space when not in use.
-Font appvars can be uncompressed (2048 bytes) or compressed (~1200 - 1850 bytes), KryEdit will function equally with both.
-I will be providing a few fonts that you can use as a template to create your own font.
-4) Lowercase letter support
-Hit [Alpha] once, you get uppercase letters, hit it again and you get lowercase letters.
-You will be able to change this in the settings menu, with the choice of three options: "Uppercase only", "Lowercase only", or "Both".
-5) Real-time clock
-Clock will be shown in most menus, including the program editor.
-Support for 24h or 12h format.
-6) Clipboard history and support for huge cut/copy paste operations
-As long as you have the RAM space, you can cut/copy as large of a chunk of program as you want to, and paste it elsewhere.
-Clipboard history will be dynamically allocated, meaning that the amount of clipboards you have will be dependent on how large each is.
-7) [Clear] Undo
-If you accidentally hit [Clear] and erase a section of your code, worry not, you can undo!
-As of OS 5.3, TI's editor already has this, but I will have a setting to completely turn off the [Clear] button in the editor.
-8 ) Faster program copying
-Ever notice how it takes forever to copy large programs? This is likely because TI's method of copying one program to another involves redrawing the screen for each token that is copied, which effectively slows the copying process. KryEdit will have faster routines, so worry no more about having to wait 2 minutes for all those DefineSprite() commands to copy from your ICE program.
-9) Line numbering
-There will be the option to enable visible line enumeration in the editor.
-10) Jumping
-You'll be able to jump to any Lbls, beginning, end, or to a specific line in your program.
-It will be near-instant, instead of TI's silly "wait through 20 seconds of scrolling" method.
-11) Custom colors
-Ever wanted a program editor with a night theme? Well now you can, KryEdit lets you pick from any of the 256 XLIBC colors for any part of the editor, so you can get that sweet black background and white text combo you've always wanted.
-12) Resume
-You'll have the option to enable a feature that automatically opens the last program you were editing when you launch KryEdit, allowing you to completely skip the main menu if you just want to continue editing.
-This option will also save the cursor position, so you'll resume exactly where you were.
-13) Rename
-Quickly rename a program without having to copy it's contents into another program.
-Lock and unlock programs.
-14) ICE command names
-Option to show the full names of ICE's sum() and det() commands when editing an ICE source program. This will be an option because some of the names are quite long and some users may not want the full names.

Here is a list of maybe features (features that I am considering adding, but are not guaranteed to make it into the final program.) :
-1) Integration with ICE
-Compile (and run) your ICE program directly from the editor!
-ICE may be able to open KryEdit to goto an error instead of opening TI's editor
-2) [Prgm] key hook
-Instead of having to run KryEdit like a program, I might be able to implement a hook so that you can have the option to make it open when you hit the [Prgm] key in TI-OS.
-3) Pinning programs
-It's possible that I could add the ability to pin programs to the top of the list, one way I thought of doing this would be to save the pinned program names into KryEdit's settings appvar (KEDITSET).
-4) Backups
-Maybe an option to create compressed appvar backups of a program.
-5)Lock/un-lock programs
-Change program types from locked to un-locked and vice versa.

Now that I have the features out of the way, and 940 lines of code already done, here are some teasers, just remember that this project is still quite far from done.
Here you see me messing around with the settings and showing you around the main menu. The ability to archive/unarchive and delete programs is already in place. At the end you see me view a program, with some minor syntax highlighting. You may notice some of the characters in that editor don't look quite right, this is due to differences between fonts, and will be fixed later with my provided default font. You'll see a color selector, check boxes, and a dropdown menu in the settings menu


The one down here quickly shows a custom font. This font is smaller than the default font KryEdit uses, so scaling is quite different. As you can see, there are still some kinks to work out, but I plan on allowing custom font sizes, up to 8x8px, while having text still be beautifully centered and/or positioned correctly in their respective menus.


Thank you for reading, and please, ask questions, and request features.
I'll keep this post up to date with updates, teaser screenshots, and answers to your questions as my time becomes available.
Looks very slick!

The copy+paste option is very interesting.
Very neat looking indeed! I think the indenting and syntax highlighting will be very popular. The [PRGM] hook idea is a good one too Smile
Could you add the feature where you can pin/unpin specific programs to the top of the list?

Otherwise, very nice program!
I have to say, I was a bit skeptical about you saying "a better program editor for the TI-84+ CE", but I actually have high hopes for this project! Let's hope it gets to a point where this, for me, could replace the TI-OS editor! Laughing
Feature request: replace all the det(X and sum(X in ICE source programs with the actual name! Very Happy
Looks pretty good so far, and goodluck implementing it all!
I love this idea, it fixes all of the problems I didn't know TI-OS had! Though, with all your awesome features, isn't it more of a shell now? Also, any hope to integrate xlib CE? If so, why do we even need Doors or Cesium? Razz
Feature request: would it be possible to add a night-shift feature? I made a topic about this a while ago, but it was deemed impractical since every time the screen refreshed it would change back to white. However, since you have the ability to change everything's colors, would this be possible?
TheLastMillennial wrote:
I love this idea, it fixes all of the problems I didn't know TI-OS had! Though, with all your awesome features, isn't it more of a shell now? Also, any hope to integrate xlib CE? If so, why do we even need Doors or Cesium? Razz
Feature request: would it be possible to add a night-shift feature? I made a topic about this a while ago, but it was deemed impractical since every time the screen refreshed it would change back to white. However, since you have the ability to change everything's colors, would this be possible?


When Doors CE comes out, I'll be sure to release an update with the proper support for Doors in the editor.
As for the night-shift, dark themes and screen brightness adjustment will be possible, but I don't know about applying a filter to the whole screen. I'll look into it later, but no promises. :3
Looking good! Keep up the good work Smile

You may want to allow sorting by type but I don't know Razz

PT_ wrote:
Feature request: replace all the det(X and sum(X in ICE source programs with the actual name! Very Happy
Looks pretty good so far, and goodluck implementing it all!

Shouldn't ICE do this already Rolling Eyes
Looks very nice indeed, keep it up.

We've already asked TI several times about having a better editor (small font, indenting support (or at least ignore the spaces, instead of syntax-erroring, and possible things like syntax coloring)... but for now, no news about that. One day, maybe? Razz
MateoConLechuga wrote:
PT_ wrote:
Feature request: replace all the det(X and sum(X in ICE source programs with the actual name! Very Happy
Looks pretty good so far, and goodluck implementing it all!

Shouldn't ICE do this already Rolling Eyes

As far as I know, that is impossible. I can change the det( token to the name, but I can't skip the number part rendering, and changing these to a zero-length string messes up when moving the cursor in the editor, I guess. KryEdit can easily skip the next tokens, and draw a name instead. Smile
PT_ wrote:
As far as I know, that is impossible. I can change the det( token to the name, but I can't skip the number part rendering, and changing these to a zero-length string messes up when moving the cursor in the editor, I guess. KryEdit can easily skip the next tokens, and draw a name instead. Smile

Um this is actually pretty easy to do Razz Maybe when I'm not swamped with other things I'll make a PR Smile I guess it wouldn't really work in other editors though hm. Needs more brainstorming \o/
I'm looking forward to seeing this program progress. Looks Cool!
This thread seems to have slipped through the cracks, I had not seen it until now Neutral
This project is awesome! I think a feature that could be cool would be to have the ability to switch the default cursor to Insert rather than Overtype (and then maybe the 2nd del combination could make it temporarily toggle accordingly, so in insert mode, it would make it overtype, and in overtype mode it would make it insert) I think this would be nice because I think most people nowadays find insert much more user friendly.
I look forward to seeing where this project goes, and hopefully even using it instead of the OS's program editor at some point in the future.
Hey not sure if I misread something or didn't read it, but I was just wondering about the actual entering of programming tokens (such as 'If', 'Else', etc.) from the prgm menu. Would you use the OS routines for that (not recommended), write your own little menu system to enter them, or what?

I'm really excited for this project... might be enough to make me start coding on-calc again.
CodertheBarbarian wrote:
Hey not sure if I misread something or didn't read it, but I was just wondering about the actual entering of programming tokens (such as 'If', 'Else', etc.) from the prgm menu. Would you use the OS routines for that (not recommended), write your own little menu system to enter them, or what?

I'm really excited for this project... might be enough to make me start coding on-calc again.

I'm writing my own menus for inserting tokens, such as the [Prgm], [Math], [Test] menus, etc.
If anyone has any suggestions on if/how I should change the ordering/location of various tokens in the token selection menus, let me know!
I've settled on copying the organization of TI's token menus, but I might change a few things here and there depending on the feedback you guys give. Smile
Could you put a battery indicator in? (Like Cesium)
Don't put IS>( and DS<( at the top, I don't use them, but if someone does, how can they be used?
SM84CE wrote:
Could you put a battery indicator in? (Like Cesium)
Don't put IS>( and DS<( at the top, I don't use them, but if someone does, how can they be used?

They were mostly used to make for loops before for loops existed. It basically increments or decrements a variable, and then performs a conditional check.
IS>(A,B) is exactly the same as

Code:
A+1→A
If A≤B


And DS<(A,B is exactly the same as

Code:
A-1→A
If A≥B

These would be put in while loops, to make manipulations of control variables a little bit easier. Of course nowadays, there are for() loops, so the tokens are pretty much useless.
Can it edit archived programs? can it edit asm programs?
looks very cool! way beyond my level!
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 7
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement