Downloads
IDE and major frameworks
TransSkel 5.0b13
Cleanup, some old junk removed. Works with FPC 3.2! Two good old demos, DialogSkel and MultiSkel, are updated and put back.
Lightweight IDE 1.0a14
(application only) Still 32-bit. Bugfix for drag-and-drop problem.
TransSkel 5.0b12
Various changes since b11. Most importantly TransEdit works again.
TransSkel 5.0b11
Now tested properly compiled as 64-bit code. Many changes since b10.
Lightweight IDE 1.0a13
(application and a few demos)
After quite some time a no uploads, but quite a few changes, it is about time.
- Skips link options if they are empty. (Makes it possible to compile with pas2js.)
- Added preliminary support for pas2js (using the x86 compiler path).
- The // uses path feature for C is corrected and works.
- Latex build and color coding. (Hard coded paths to the compiler.) No error parsing yet.
- Added a data input field for data to send to standard input of the program being run. (Perfect for Kattis/UVA exercises.)
- Settings for 64-bit compilation and LaTeX path.
- 64-bit compilation for C.
Lightweight IDE 1.0a10
(application and a few demos)
One more minor update for some problems found, mainly in C projects.
- Fixed a bug that could make the IDE miss files in other folders from the uses menu.
- Disabled some of the C++ support that was a performance killer. I might put that back later if I can fix the problem.
- Modified multi-find search to fix a bug that made it skip files.
Lightweight IDE 1.0a9
(application and a few demos)
A quick patch to make it work on High Sierra. This may have some
side effects since it eliminates the workaround I made for problems in
an earlier OSX!
- Process management has an emergency fix to make it work on High Sierra.
- Window
positions are saved for Console and Errors. (More may come but these
were claimed to be the most vital. Not that I really see why myself.)
Lightweight IDE 1.0a8 ("a")
(application and a few demos)
I made a final rush this summer... but this also marks a step down in ambitions.
- Added the option of specifying paths as C code comments, “uses path …”, just like you can “uses options” etc.
- GLSL files are no longer identified as main programs, “run” with a shader first will now work.
- Python runtime errors are now listed in the error window.
- Modified command key for rotate windows.
- Frame list support for LLDB! (At last!) Frame list with matched case. Variable zoom compatible with frame list.
- Unknown stop reasons are now reported and expected to be fatal.
- It is now possible to set breakpoints while the debugged program is running!
- Double-click in frame list to open file.
- Frame list now displays Objective-C methods in a meaningful way.
- Lua color coding,
- For some time, I have had the debugger not stopping at the start
of the program, but this seems to cause major problems so it is back at
the safer although slightly less convenient way.
- The extension .cs is now recognised as shader code.
- Option-Build rebuilds all (FPC and C).
Lightweight IDE 1.0a7
(application and a few demos)
The LLDB debugger interface has gotten some vital improvements which makes it significantly more useful!
- Fixed a bug in the selection color in the Console.
- Fixed a bug that caused the debugger finger not to be shown at launch of a program.
- When running while the debugger is active, the temporary breakpoint at the start of the program is re-activated.
- Breakpoints can now be set while a program is exited but the debugger is running.
- Codesigning will now be skipped if the default string is used. (This caused harmless warnings.)
- Zoomed variable display (middle view) in the debugger is significantly improved!
Multi-line arrays work a lot better, the whole parsing is more robust,
and as a bonus it can recognize and display ShortString/String, that is
old-style strings! (LLDB tries to display these as big arrays, which is
awful.)
- Removed the $ signs in the hex dumps. They are unnecessary information.
- Default C compiler changes to clang. This will usually not matter at all.
- Clears the extra files and custom resources lists so that they don’t remain after switching main program/project.
Lightweight IDE 1.0a6
(application and a few demos)
A few more fixes in the customization of color coding.
- Fixed the customizable selection color.
- Transfer modes in color coding customizable, good for dark backgrounds.
- Added documentation for customizing color coding.
Lightweight IDE 1.0a5
(application and a few demos)
A whole bunch of fixes.
- Enabled codesigning for Mac applications (Pascal and C/C++/ObjC).
- Fixed a bug that prevented correct iOS codesigning.
- Lightweight IDE will from now and onwards be uploaded codesigned!
Note: If you want to codesign your own applications, you need a
developer certificate from Apple. I have written a small document on
what I did. It will be in the “documentation” folder.
- Moved custom resources settings to “target”, where it is a bit more logical.
- New option; reload all resources at “run” or not. (Reloading is
slow for large applications but efficient when you are editing
resources often.)
- Fixed a bug that made arrays show up as functions in the function menu.
- Fixed a bug in the color coder that caused multiple scans and multiple occurances of functions in the function menu.
- Fixed a bug (which really bothered me) in the editor that failed to save unsaved files when closing a window.
- Fixed a bug that could make C builds fail.
- Fixed a potential problem in the check for C compiler.
- Fixed some problems with the color coding. Custom colors are now read properly, and white text on dark background works!
- Added customization of selection and parenthesis balance marking colors.
- Fixed a bug in the new, smarter Info.plist handling.
Lightweight IDE 1.0a4
(application only)
Fixed a bug introduced in 1.0a3, messing up C paths.
Lightweight IDE 1.0a3+
(application only)
Just a little bug fix for setting the path when running Python.
Lightweight IDE 1.0a3
(application and a few demos)
And yet a few more.
- No -L for paths when doing intermediate GCC (that is, clang) builds.
- Fixed a bug in the template opening that would make it fail when used after making compilations.
- The “minimal animation” demo is now also available in Python, Java and FPC JVM.
- Some changes in code completion that should improve code completion of classes.
- Corrected a bug in the Pascal formatter that could cause lockups.
- Added -fno-color-diagnostics to default C options. (Avoids clang output garbled with formatting directives. )
Lightweight IDE 1.0a2
(application and a few demos)
Already the second alpha, because now this is so fun that I can't
stop. :) Not that long list, but some rather signifcant attempts to
make it more inviting for beginners.
- If no command-line tools are detected, Lightweight IDE will now
launch an installation of the command-line developer tools, making that
easier for a new user.
- At startup, if no file is auto-opened the user may create a
source file from a template to get a quick start. (Default gives simple
“Hello world” examples.)
- Alt-new will give the same dialog so you can open a template at any time.
- Python version number is now shown in the about box.
- Bugs fixed and error messages added for the extra files support.
Lightweight IDE 1.0a1
(application and a few demos)
First alpha for the complete 1.0! At last!
- A conflict in the window position setting fixed.
- “Tab inserts spaces” option.
- Optionally skip auto-reopen if holding down a modifier key at startup.
- Very important improvement: Several improvements in the debugger
variable “zoom” view, will now display more variables correct (although
not yet “beautified”).
- New, higher resolution icon without potential copyright issues.
It still isn’t my dream icon but it looks a bit more serious, but the
copyright is really #1.
- Fixed a problem with setting breakpoints before running.
- Fixes in front window detection.
- More adjustments of editing with arrow keys, again supporting alt-arrow with shift.
- “Go to line” dialog is now Retina/high resolution compatible.
Lightweight IDE 0.9.9 patch 3
(application and a few demos)
Mostly bug fixes.
- Auto-formatting option for Pascal and C/C++. However, it is clear
that the formatting is not completely bug free, so I can’t recommend it
for large files at this time.
- Better error message for no/invalid main program.
- Removed green line in parenthesis balance marking. (Probably debugging leftover.)
- Settings for Python/Pylint location added.
- Moved settings for Java and Ada locations to advanced settings
dialog. More in line with the rest and leaves space for other things in
the basic settings.
- Arrow key movements improved, follows the conventions of other editors better.
- Class browser somewhat more working, no longer “dead”.
- A bit better updates of the debugging “finger”.
- A bug that caused crashes when manipulating the LightBugs window fixed.
Lightweight IDE 0.9.9 patch 2
(application and a few demos)
And a whole bunch of more changes.
- Fixed minor bug: The “finger” could get the wrong color if a
breakpoint was deactivated.
- Bug fixes in the C code formatter.
- Moved the “advanced” settings button outside the tabs, making it
always present.
- “Edge resize” now supported.
- Important bug fix that made breakpoints fail in certain (rather
common) cases.
- The debugger “finger” is more reliable.
- C++/ObjC code now launches nicer in the debugger.
- LLDB terminates more gracefully so it will not leave hanging
sub-processes.
- The “Default” button did not save to the new setting.
- Minor bug fix in code completion.
- The LLDB interface is now better at figuring out where in the
source the program has stopped.
- Indent selection and block commenting now safer and easier to
undo.
- Multi-file search will now include .h files for C/C++ projects.
- Revised the color handling to allow for custom color schemes.
- Custom color scheme read from file.
- Custom color coding identifiers read from file.
- Sh color coding was severely buggy, now fixed.
- Bug fixes in data collection for code completion.
- Background color support restored (editor and console).
- Python Color Coding, with uses and function menu! This means that
Python moves from “barely even recognized” to “basic support”.
- Support for custom name/place for the info.plist file. (Advanced
settings.)
- Support for resource files located in arbitrary locations.
(Advanced settings.)
- Block comment/uncomment now Python compatible.
Lightweight IDE 0.9.9 patch 1
(application and a few demos)
Many changes but the biggest ones are still to come.
- Rotate windows was broken (did nothing), now it works again. (Not
the desired command-key though. I just noticed this now when uploading.)
- Turned off optimizations of the “front editing window” check in
an attempt to fix a new bug that makes “enter selection” fail.
- Solution to a problem found: The “clang” compiler needs the
options “-fsyntax-only -fno-color-diagnostics” to avoid terminal
directives that confuses the parser. This should go into future
defaults but that will not help old projects. (I consider skipping over
the directives properly.)
- Debugger Direct no longer assumes GDB (which caused delays
waiting for the wrong prompt).
- C error messages now detects “note”.
- Error window hidden until needed.
- Corrected a bug when displaying an array of records.
- Modified the front window tests (CalcFrontMainWindow) in order to
make the project settings safer.
- Corrected “GDB” to “Debug/Debugger” in the About box and the path
settings.
- Moved “Replace all” from the menu to the Search window.
- Wideneded the “Update” button so the text fits on all screens.
- Changed one-line settings boxes to truly be one-line.
- Removed non-monospaced fonts (Geneva, Times).
- Added ctrl-A and ctrl-E support for going to beginning and end of
line.
- You can now copy error messages from the error message window as
text.
Lightweight IDE 0.9.9
(application and a few demos)
I have waited too long with this, but that is because we had some
crashing issues with the changes made in the autumn. Now it feels more
stable. (But please report any reproduceable crashes!)
Now, do we have any interesting changes? Yes, quite a few:
- Added "" to debugger path so the debugger may be on paths with
spaces.
- First version of LLDB support!
- Integrated LLDB/GDB debugging.
- LLDB now default under 10.9 and up.
- Revised
scrollview/double finger drag so it doesn't apply to the active view
but rather the one with the mouse over it. The scrolling in the Console
was broken and now works better. Corrected the scroll direction in the
error window (again?)
- Fixed one more bug in the data collection in the Color coder
(could cause crashes for C code).
- Converted code to FPC 3.0, which was very good since it made me
find some insecure code!
- Fixed a bug that caused performance loss in files with unknown
type.
- C formatter will now also be applied on C++-like languages like
GLSL, Java etc.
- A first prototype for support for FPC
for JVM and Android. (But I havn't figured out how to make
correct Android builds yet.)
- Two more bugs found in the C color coder… also related to the new
features.
- The following search/replace settings are now saved: Ignore case,
Entire word, Wrap.
- A settings file should not be created as long as the settings are
not changed! I hope this is now fixed.
- Corrected a bug that caused unnecessary warnings about missing
compilers/missing debugger.
- Improved the Applet check for Java.
- Introduced an internal “Pascal mode” for making the debugger
presenting information well for both Pascal and C.
- Corrected a bug in the multi-file search.
- Fixed the bug with lower case C completions - again!
- Multi-file search and batch find are automatically turned off by
“find” and “enter selection”. I think that makes sense.
- Smarter detection of main program. If the front file refers to a
main file, that file is selected.
- “GDB Direct” is now called “Debugger direct”.
- Search and go to line windows no longer zoomable.
The LLDB support is the main attraction, a much needed change
considering how awkward it is to install GDB today with all
certificates and all.
TransSkel 5.0b10
About time to upload the latest! Includes QDCG etc.
MicroGlut
for Windows, Mac and Linux, updated for Windows
Fresh files as of january 2016.
Lightweight IDE 0.9.9 pre 2
(application and a few demos)
1.0 is getting close now! There is more than bug fixes here.
- Fixed a bug in color coding concerning parsing "record".
- Fixed a bug in the auto-reopen code that made it crash if the IDE
is closed with no files open.
- Fixed a bug that could make the IDE crash on opening Pascal files
(affected 10.9, not earlier OSes).
- Fixed a bug that made opening of read-only files fail.
- Fixed a bug in dual view introduced by the Retina support.
- Changed text format default to Unix/LF instead of Mac/CR. This is
nicer to the official GDB… well, necessary, actually!
- A few steps towards a smarter debugger interface! In particular,
the debugger now tries to detect if the program halts or crashes.
- You can now change variables in the debugger by alt-clicking!
- Pascal code completion!
Now a lot smarter, including code completion for classes, and looking
into closed files.
- C/C++ code completion!
- Changed the color of the now more useful memory dump view so it
looks less silly.
MicroGlut for Windows,
first beta
This includes my simple demo "Psychedelic teapot" as well as my base
set of utility files (VectorUtils, loadobj, LoadTGA...). Tested on
Windows and Mac, and is likely to run on Linux too with minimal
modifications. Visual Studio 2010 project included, as well as current
Mac and Linux versions of MicroGlut.
Lightweight IDE 0.9.9 pre 1
(application and a few demos)
The step to 0.9.9 marks a pretty big step up:
- Supports running Lua scripts with extension ".lua". (Almost
untested, only tested for a trivial case.)
- A simple color coding added for Lua (good enough for a function
menu).
- Added a C code formatter.
This, too, is manual at this time. It has some quirks but it does a
good job for most code. That is, if you like my C code formatting
preferences. (I might add some options for variants.)
- Added live balance hints in the editor. (When the insertion point
is at an end parenthesis, the starting one lights up.)
- "Enter selection" supported in console.
- When alerting that another process is running, added option to
quit the other process.
- Scroll wheel support for project window.
- Undo now collects consecutive text into one undo item.
- Cursor set to "ibeam" when in editor area.
- Added NSHighResolutionCapable to the default info.plist in order
to support Retina. (One out of several requirements.)
- The editor will not try to open files with no name.
- "Replace" will not replace nothing. (Irritating effect when
making multiple cmd-L.)
- Retina support. High
resolution on high resolution screens!
- Minor bug fix: Scrollwheel/trackpad scrolling can now not go
beyond the bottom of text windows.
- Significant bug fix, fixing a bug that made the IDE crash when
trying to open files that are write protected!
- Adjusted the path pop-up to appear at the window top instead of
under the dragbar.
- Removed support for global variables in the debugger, due to a
fatal bug in GDB! Global variables will be back in some other way, but
for the moment, we will be without them since they can crash GDB! (This
one took me a while to figure out!)
- Does not ask before opening "makefile" or "readme".
- C and FPC builds and debugger search for compiler and debugger if
they seem to be wrong, and suggest correction.
- Queues some of the debugger work, which speeds up the debugger
noticably.
- Implemented Auto-reopen.
- Implemented block-commenting.
- The debugger now handles display of class variables better. Also
some bug fixes, i.e. fixed a bug that could display variables that
didn't exist.
- Some corrections of drawing views that went wrong in the Retina
conversion.
- Made the memory dump view readable.
This is such a big list that I ask myself what is the most important
one. Retina support is great when working on such a Mac. Auto-reopen is
a feature that I notice every day, and it helps quite a bit!
Lightweight IDE 0.9.8 patch 8
(application only)
A few
more changes, especially important for projects that mix C and FPC code:
- Default location for GDB on new systems corrected. (Should be
/sw/bin/gdb.)
- Updated the Pascal code formatter with substantial improvements.
(But some more are still needed.)
- Fixed a bug in the display of GCC errors. (The ' characters were
misinterpreted.)
- Fixed a bug in the code completion that made it totally
worthless. :( Maybe it is a bit more useful now. (But we are aiming for
a more "real" code completion.)
- Fixed a missing check in the settings/project handling.
- Changed direction for scrolling in console. Is this correct? At
least for two-finger-drag I think it is.
- Modified the command-line to work better with FPC projects with
extra code in C.
Lightweight IDE 0.9.8 patch 7
(application only)
The Christmas Edition had a fatal bug for C builds! Sorry about
that! We have also found some limitations in the formatter. We are
working on that, as well as supporting C in "jump to function". A few
more changes:
- Corrected a minor bug that had the console output to be one
character off, which caused the first CR to be ignored.
- Some safety fixes trying to track down a bug that causes
Lightweight IDE to crash for some so far unknown reason.
- Configurable GDB location (important for 10.9 and up).
- Added a "Back open selection" menu item so you can "walk the
code" better with Open selection.
- Cleaned up the version display in the About box. The Java version
check works again. (Failed due to a change in Java.) Also, the Ada
version check works.
- Removed -wall from C default options, since Apple's new GCC
(LLVM) doens't support it.
With the new computer graphics course starting, a few people are trying
the IDE for the course. This is good, I hope for some feedback. I
certainly want the student to try a version that works for the coruse
material! After all, all the lab materials and demos were developed
using Lightweight IDE! (Just make sure that you use the Mac version of
MicroGlut!)
Lightweight IDE
0.9.8 Christmas Edition (application and a few demos)
I hope you find something to like here:
- Abort search (introduced in p5) no longer blocks abort process.
- Improved indentation; you no longer have to start your selection
at the beginning of a line.
- Also improved auto-indent.
- An incorrect offset at end of file introduced by recent changes
fixed.
- Jump to function feature!
This is a major new feature that you hardly notice until you use it.
This means that the "open selection" menu item now not only applies to
files, but also to functions! (FPC only at this time but soon also for
the C family.)
- Fixed a bug in the find/replace dialog that prevented replace to
happen if the dialog was in the front.
- The (simple) auto-completion is reactivated. It was hooked off
when I switched to Halda. But it doesn't work quite as it should. More
work needed there…
- Fixed a bug that made redo fail!
- Fixed a bug that made paths fail! (At least for C code.)
- Added a function to "clean" paths with "..", which is often
convienient for relative paths, but that caused conflicts.
- Fixed a problem with relative paths in the "prerunner".
- Fixed a bug in the recent files menu.
- Fixed a bug in multi-file search, searching in on-disk data when
the on-screen version had been edited.
- Made FileIsOpen case insensitive, thereby making the IDE less
prone for case errors on file names (but I believe there are some more
cases).
- Some corrections in multi-file search.
- A bug fix in the "prerunner" which caused the bundle to be built
prematurely.
- A bug fix in C compilation for the "prerunner" which caused
frameworks to be ignored.
- Proper check for icon file to exist.
- Fixed a bug that caused some CRs to disappear in the console.
- Added a Pascal code formatter.
At this time, this is not automatic but manual, by a menu selection,
until we can verify that it is doing a good job and doesn't slow down
too much with large code. (An automatic formatter mush be very fast and
needs more settings in order not to be intrusive.) Pascal only now, but
a C code formatter is coming soon.
- Made a fix to a problem that could cause very long builds to fail
due to timeout.
Lightweight IDE 0.9.8p5
(application only)
Quite a few improvements:
- Optimized project window a bit to avoid too many recalculations.
- Limited uses/include search in big files to improve performance
in large projects.
- Added reduction of CRLF to CR to open MS Windows files correctly.
- Main window checks will now skip shaders and OpenCL kernels.
- New fix for cmd-keys being entered into editor. Let's hope it is
right this time.
- One more time on making TABs work correctly…
- Fixed one bug involving paste and undo.
- Fixed a problem with menu items getting garbled by special
characters.
- Reversed trackpad movement direction. Now at least the trackpad
seems to agree with other editors. Seems to agree with the mouse wheel
as well. (However, one of our test machines seems to disagree.)
- Trimmed away the extra "batch find" check box.
- Fixed a bug that could cause Halda to fail if color coding
reached the last character in the file.
- Significantly improved multi-file
search!
- Batch find, single file or multi file. Results shown in error
window.
- "Extra files" dialog no longer refuses .m files.
- "Extra files" saved without path if path matches the main file.
(Much nicer to read and easier to relocate.)
- "Extra files" also applies to C projects (although only with
C/C++/ObjC files) which is useful for files for which you can not use
#include.
- A correction in the selection for FPC errors and search results.
- Fixed a bug in creating framework paths for C compilations.
- Corrected the update of current text editor view.
Lightweight IDE 0.9.8p4
(application only)
A few relatively small fixes:
- Scroll wheel/trackpad scroll can't scroll unhindered way past the
bottom. (Still not perfect but better.)
- Horizontal scroll with trackpad supported.
- Scroll wheel/trackpad support in console.
- Scrolls to selection on undo and redo.
- Scroll wheel/trackpad support in error message window.
- Command-keys don't leak from the find/replace dialog any more.
- Project window updates more often and with better contents.
Lightweight IDE 0.9.8p3
(application only)
One bug fix:
- Corrected scroll direction for scroll wheel.
Lightweight IDE 0.9.8p2
(application only)
Some bug fixes:
- Improved support for custom info.plist and PkgInfo in IOS.
- Relaxed file name demands for info.plist for MacOS.
- Corrected a problem where preferences could be truncated if too
long or lost if it contained illegal characters.
- Fixed a bug that prevented the launched program to be brought to
front.
Lightweight IDE 0.9.8p1
(application only)
Fixes a severe bug that made ordinary C compilations fail.
Lightweight IDE version 0.9.8
(Including some demos)
"Official" 0.9.8 version.
- New preferences handling! This
means that the whole preferences system is rewritten with the following
advantages: 1) Settings are now individual for each project! Stored as
".settings". files near the main program file. 2) Text based, can be
managed (repaired) manually if needed. 3) No more dependency of the old
Resource Manager, improves portability.
- Scroll wheel support for the new editing engine.
- Sideways auto-scroll for the new editing engine.
- Project window works again. (Another bug introduced with the
changes for using Halda.)
- The prerunner.
C/C++/ObjC source files can now be specified as part of a Pascal
project and compiled as part of it. This adds a field in the
preferences, in the "frameworks" area. Current limitation: Absolute
paths only.
This completes the step from 0.9.7 to 0.9.8 and the total is really big.
TransSkel 5.0b9
News in TransSkel 5.0b9:
- QDCG is now made integral part of TransSkel. Draw handlers can be
specified to be for QDCG, which makes them more automatic, less code in
the appliction layer.
- New callback installers, one per callback! (Also i SkelView.)
- SkelBringToFront should now work better.
- Added Stepper control.
- Added a timer for sheet replies, to avoid problems when an alert
precedes a file dialog.
- WindowDelegate.windowShouldClose now calls SkelCloseWindow, so
all ways
to close a window will be processed the same way. (Second irritating
bug that ruined the editing demos. Good enough now?)
- Added SkelSetViewResizing and SkelCreateTabGroup.
- New demo: "Tabs and radio buttons"
- Various minor changes and additions.
Lightweight IDE version 0.9.8 pre 4
(Pre-release, preliminary, including some demos)
Second "somewhat official" almost-0.9.8 version.
- Fixed a performance bottleneck when editing formatted files. I
can now open, browse and edit a formatted file of 12245 lines (292 kB)
with no noticable delays, and a huge file of 227442 lines (10 MB)
pretty reasonably!
- Cleaned out some obsolete options.
- Added search backwards!
- Added dual view!
- Plus some minor bug fixes.
That is pretty significant in my book. However, there is also a nasty
bug that I havn't been able to find. It appears when running without
debug, "release code", but not when trying to debug it... That makes it
pretty hard to find. I hope it won't affect you.
Lightweight IDE version 0.9.8
pre 3 (Pre-release, preliminary, including some demos)
This is the first version of this significant revision that is
stable enough for the download page. The big change is the new editor engine!
Last autumn, I found that the limitations in the old TXN engine was
even more severe than I had been willing to admit. I can't stick to an
obsolete text engine (it wasn't obsolete when I plugged it in though)
that requires workarounds fornumerous bugs (like the undo bug that made
me replace its entire undo system in 0.9.7), lacks support for many
important features, and now is proven to be the reason for performance
problems when working with large files.
So the main new feature is editor
performance! The new editor engine is dubbed Halda, after an old swedish typewriter company.
(I recently discovered that the brand has re-emerged as no less than
two different companies but I hope they don't mind me using the name
for an internal module.)
- Much, much faster editor, no longer an external module where I am
limited by someone else's mistakes.
- Live incremental color coding! This was absolutely impossible
with TXN!
- Rotate windows feature (nice when you have many windows open).
- New search/replace engine. This will allow many new features,
like searching backwards. (To be added soon.)
- Reversed the "recent items" sub-menu, putting the latest first.
- Bug fixes in the Ada build: The intermediate files folder was
created locked, the FPC link options were included by mistake.
- Made it open any kind of file, not just a limited set. (Filter in
the file dialog.)
- Fixed bugs in Ada and Java support.
- Various bug fixes (mostly introduced by the conversion to Halda
and QDCG) from the first temporary 0.9.8:
- Added framework support to Ada. No more work on Ada from my part
now.
- Some fixes in Java compilation and running. (Relies on a global
that came out of synch.)
- Added SetWindowModified to set the "unsaved" dot in the close
Lightweight IDE version
0.9.7p3
(Application and a single Ada demo only, 10.5+) (EXPERIMENTAL)
This is an update that mainly fixes some bugs in the (very limited) Ada
support. Since this required some backroll of the code, there may be
bugs in other places, so it is probably not advisable for other uses
than Ada at this time.
Bugs fixed:
- The Ada builder created a bad intermediate-files folder.
- Spaces were not allowed in the path.
- Ada
files could not always be opened from inside the IDE. (This is the only
bug that may affect other languages in a positive way.)
- The default path for the Ada compiler is now changed to the
default of the most current GNAT that I know of (here).
- The Hello world! for Ada has now an additional input at the end
so the "lost console output" bug doesn't affect it.
And a patch on that, which fixes an editor problem introduced in the
earier 0.9.7, namely that "home", "end", "page up" and "page down"
stopped working (as part of replacing the undo system with one that
works). And then p3 that makes one more fix to the file dialog code.
Now I really hope it works!
Lightweight IDE version 0.9.7
(Application and small set of demos, 10.5+)
News in Lightweight IDE 0.9.7:
- New undo system! Removed
all usage of Apple's horribly buggy (really!) undo system and made my
own, used in all editing windows. After only a few hours coding, it
works surprisingly well. (OK, there were a few bugs, fixed the
following days. Not bad.) This might be the end of one of the biggest
problems the IDE ever had, the garbage that tends to show up at the end
of files once in a while, which I previously referred to as the "save
bug". I only recently found the reason, that it comes directly from
incorrect undo operations, which is connected to using the style calls.
This whole problem is in Apple's code, so I can never fix the problem
in the library, but have now circumvented the problem by writing my own
undo system.
- Disabled dragging in the text editor, since that conflicts with
the new undo system. I might find some way to fix it some time but for
now I have to disable the feature. Pity, I used it sometimes.
- Fixed a path bug for Java (fixed for C and Pascal above but I
forgot doing it for Java).
- Scaling of debugger window fields improved.
- Fixed a bug in parsing arrays of AnsiString.
- Simplified string parsing in the debugger. (Fewer bugs in the
future?)
- Fixed a bug in the uses parser (GetUsesListFromText). It was case
sensitive, now it is not.
- Implemented the class browser,
including pop-up menus for methods and click on class name to jump to
class definition. Pascal (and Objective Pascal) support only at this
time.
- Fixed a bug involving long file names.
- Added support for a
"frameworks" folder,
like the "resources" folder, for frameworks stored in the application
bundle. I thought I would have to do more, but tests are promising.
Supported and tested for Pascal and C/C++.
- Removed some debugging outputs out of which one could be harmful.
- Added support for a custom Info.plist. (Before, you had to put it
into the application yourself if the automatic one was not sufficient.)
For "myprogram.pas" it should be named "myprogram Info.plist".
- Messed with the UTF8 encoding. I thought this was fixed, but now
I added some extra error checks so any future problems will be
discovered early.
That is quite a lot for a "minor" version, but I am running out of
numbers before 1.0. The big things here are a fully working undo system
(at least it is a zillion times better than Apple's built-in junk that
they never fixed), the class browser, the frameworks folder and the
improvements in the debugger (although the debugger still needs much
more).
TransSkel 5.0b8
News in TransSkel 5.0b8:
- New demo: "Five or more", a simple game common in Linux
distributions, here in a complete yet marvellously simple TransSkel
re-implementation.
- Added operators for matrix and vector operations to QDGL.
- Added resource folders to all demos so they will work correctly
with new Lightweight IDE versions.
- Various minor changes and additions.
Lightweight-IDE-096-no-color-coding.app.zip
(Application only. Special version with no color coding but better
undo!)
Lightweight IDE version 0.9.6
(Application and small set of demos, 10.7+)
News in Lightweight IDE 0.9.6:
- Command line tool correctly detected when debugging
- Pascal paths now allow spaces
- Intentation much faster
- Better text for errors if a file can nog be opened
- Better test for errors if save fails
- Simplification: Command line tool mode checkbox removed
- "Recent items" sub-menu under the file menu
- Major overhaul of the debugger interface!
- Global variables auto-extracted
- Expression pane working
- Go to line number supported by clicking in the line number box
- Debugger supports disabled breakpoints and "run-to" clicks.
- Local code completion implemented (searching the local file for
similar
phrases)
- Breakpoint positions corrected if found inaccurate
- Fixed a bug in the hash table index calculation
- Fixed problems with debugging files with non-ASCII path names
Lightweight IDE version
0.9.5p+3
(App and small set of demos, compiled under 10.8 but seems to work
under 10.6.) A number of fixes. This is
really a prerelease for 0.9.6, as you can see from the changes list
below.
News in Lightweight IDE 0.9.5p+3:
- Changed shell script support to also run Perl, Ruby and Python.
(No color coding for those yet though.) Also added JavaScript, by
calling into the JavaScript framework.
- Any file that isn't recognized as color codeable is set to black
and same size.
- Replaced hash functions with HashTableUnit, an isolated and
enhanced version of the routines previously in ColorCoder. The change
should not be noticable but is somewhat more robust.
- Bug fix: Window title glitch (MacRoman vs UTF8) fixed.
- Preliminary Pascal code formatter! And it works pretty well for
all cases tested so far!
- Color coding now allows style variations.
- Bug fix: Fixed color coding for compiler directives within "uses".
- Bug fix for "open" from the file menu in 10.8.
- Command line mode is now automatic! No "resources" folder ->
command-line mode!
TransSkel 5.0b7
News in TransSkel 5.0b7:
- Worked around the interface problem with the missing itemAtIndex
method. Editing that in is no longer needed. There is an internal
ItemAtIndex function that replaces the method.
- Fixed inconsistent index handling in
EnableMenuItem/DisableMenuItem.
- Renamed DrawPictureRotated and DrawStringRotated to overloaded
variants of DrawPicture and DrawString. (Shorter and nicer.)
- Added DrawPicture calls with page name, for multi-page PDF
support.
- Removed dependency of deprecated CGContextDrawPDFDocument call.
- Bug fix for a bug in the quitting procedure which caused crashes.
- Added support for NSPopUpButton in
SkelSetNumValue/SkelGetNumValue and SkelSetNumViewHandler.
- Rewrote the CGContextDrawPDFDocument replacement again since
CGPDFPageGetDrawingTransform has a stupid limitation so I had to work
around it. Also fixed bugs in multi-page PDF creation.
These are the ones I have documented. This update is so seriously
overdue that I have lost track of all changes.
Lightweight IDE version
0.9.5p+2
(App only.) Two important bug fixes.
Lightweight IDE version
0.9.5p plus
(App only.) This version has
some fixes for problems found in 0.9.5 after uploading.
Lightweight IDE version
0.9.5
(App and small set of demos, 10.6 required. NOTE: This version has
problem under 10.7 and we must use an older version there. This was
found after release. Try 0.9.5 plus, above.)
News in Lightweight IDE 0.9.5:
- A new "uses" feature for C/C++/ObjC lets you specify dependencies
that can't be specified with #includes. Similar to {$linklib} in FPC,
you write //uses to specify other files. Examples: // uses framework
Cocoa, // uses library m, uses option -c99. This is slightly dangerous,
comments starting with "uses" can cause problems. I will probably add
extra checks to discard comments that really look like comments.
- Target now defaults to PPC for PPC machines, Universal on Intel
up to 10.6, and 386 on 10.7 and up.
- Recognizes ".gs", ".geom" and ".glsl" as shaders.
- Fixed that Apple Event problem one more time (synch problems, I
think the intermediate 0.9.4+ lacked the fix).
- Major overhaul of file management. Apple's old FSSpec's were
finally removed, which was long overdue, replaced by path strings. Yes,
I didn't go to FSRefs. Why? Portability! This was a BIG change, and
still it went surprisingly smooth. This is a very big step towards the
dream of a cross-platform solution. In particular, a Linux version is a
lot closer. This change is so big that I consider the last FSSpec
version to be a separate version for a little while, since there must
be some bugs remaining. (There were several, which is why I didn't get
around to releasing 0.9.5 for some time.)
- Restored the broken "compile unit" for GCC builds.
- Path from NSSpec strangely broke for the FSSpec version. Switched
to an older version of that code. Shouldn't matter, the FSSpec branch
is hopefully short-lived now. Discovered that this was a problem with
FPC versions. Eliminated the last traces of FSSpec (Apple event
handling) in the new version.
- Fixed "final build" and single file compilation for iOS.
(Somewhat preliminary. You can't pre-compile units to both targets.)
- Breakpoints are cleared when a windows is closed.
- Fixed a bug in minimalanimation.c.
- Added CocoaSkel (ObjP and ObjC versions) to demos.
0.9.5 is a "big cleanup" version, fixing some imortant issues (file
management) before going into upcoming additions. There are two
versions of the IDE this time, one "old style" and one "new style".
They look the same but there are big differences under the cover. The
"old style" version is included as a fallback version as long as I
don't trust the new code to 100%.
Lightweight IDE version
0.9.4+ (App only, supports down to 10.4.)
Lightweight IDE version
0.9.4 (App and small set of demos, including iPhone demos and
QuickRef. 10.6
required for this build)
News in Lightweight IDE 0.9.4:
- Fixed bug in color coding (Pascal and Ada), where upper-case
FUNCTION and similar were ignored. The problem only happened on big
files and was caused by a Toolbox function that did nothing on buffers
above 16k.
- Can now open multiple files with the file dialog.
- Fixed a problem with Apple Event processing under Lion.
- Fixed a problem with drag-and-drop in Lion.
- Smarter uses menu for C/C++/ObjC, will now detect sources of
other languages (e.g. with C code using an ObjC unit).
- Fixed problem with C++ runtime under Lion.
Lightweight IDE version
0.9.3 (App and small set of demos, including iPhone demos and
QuickRef. 10.4
required for this build)
News in Lightweight IDE 0.9.3:
- Auto-frameworks for CUDA.
- Auto-frameworks fixed for C/C++ "build" (was already correct for
"run").
- Added block indenting, shifting left and right, supports both TAB
and space.
- CUDA programs are now fully stand-alone, with no need for extra
scripts for running!
- Irritating bundle type role messages fixed, I think.
- QuickRef (which hasn't even been included in recent releases)
updated with a version indexing CocoaAll, and the MacOSAll version is
updated. A Cocoa version is also partially done, indexing MacOSAll,
CocoaAll and iPhoneAll. Finally, QuickRef now has its own icon.
Lightweight IDE version
0.9.2 (App and small set of demos, including iPhone demos. 10.6
required for this build)
News in Lightweight IDE 0.9.2:
Anniversary version!
- No more whipping, instead a more careful rewrite of the process
management... and it really looks more stable this time!
- Simplified process management for non-interactive processes,
gives better performance in some cases.
- Universal target no longer disturbs iPhone builds.
- iPhone/iOS builds include properties for running on iPad. At this
time, the builds allow both iPhone and iPad. I might add a target
setting, but it seems superfluous.
Lightweight IDE version
0.9.1 (App and small set of demos, including iPhone demos. 10.6
required for this build)
News in Lightweight IDE 0.9.1:
This is the "Let it whip" version, which refers to the last point
below, the improved process management. Otherwise, theer are a number
of vital fixes for the still very new iPhone support.
- Automatic codesigning for iOS "release builds", so you can upload
(manually so far) to the iOS device after building. (FPC only so far
since final build doesn't work for ObjC yet.)
- Removed chdir for iPhone since that doesn't help on the device so
it makes some programs work in the simulator but not in the device.
- Final builds for iOS are made using an "ARM" subfolder in order
not to confuse it with simulator code. (FPC only.)
- Fixes in the process management, to handle errors better, to make
sure processes are truly finished. Maybe, maybe we have a more stable
system so we don't run out of processes, a bug that have been there for
several years! If so, this is a BIG change!
This will not work on 10.4! I can build for 10.4 if anyone
needs it but the Mac I work on could only build for 10.5 or 10.6.
Lightweight IDE version
0.9.0 (App and small set of demos.)
Source-code to
Lightweight IDE version 0.9.0
TransSkel 5.0b6 (important
TransEdit fixes and more)
News in Lightweight IDE 0.9.0:
- Preliminary iPhone/iOS support, both ObjP and ObjC! For the
simulator only at this time.
- Auto-selects between different FPC versions for OSX, OSX with
Cocoa, iOS simulator and iOS device. (Can not yet codesign or upload
the latter.)
- New settings for compilers.
- Builds iOS bundles.
- Color coding fix for a bug that could make C code crash the color
coder.
- Carbon and -Tdarwin no longer default settings.
- Includes detailed and updated instructions for installing
Objective Pascal for OSX and iPhone.
News in TransSkel 5b6:
- PenMode support in QDCG (although not thoroughly tested yet -
needs 10.5 or better)
- Crashing in TransEdit seems solved!
- TransEdit fixes for proper use of paths vs filenames.
Lightweight IDE version
0.8.10 (App and small set of demos.)
Source-code to
Lightweight IDE version 0.8.10
TransSkel 5.0b5 (overhaul to
synch with current ObjPas version plus many other changes)
News in Lightweight IDE 0.8.10:
- Color codes "library" and "exports" in Pascal.
- Builds FPC shared libraries (not universal).
- C/C++ links with shared libraries (.dylib) if there is a matching
.h file.
- C file lists are displayed briefer, without paths.
- FPC "operator" is color coded.
- FPC operators show up in the popup menu (although "/" isn't
correct).
- Now checks for frameworks in /Library, not only /System/Library.
(For C/C++/ObjC compilation.)
- Added /Frameworks folder in bundles.
- Copies .shlib to /Frameworks in bundle. (Applies to C/C++/ObjC
only, can be added to FPC by checking for shlibs.)
- Modifies path to .shlib to /Frameworks. (Applies to C/C++/ObjC
only, can be added to FPC by checking for shlibs.)
- Added CFBundleTypeRole in bundles (to avoid error messages in
10.6)
- C projects detect multiple file types, .c, .cpp, .m to allow
mixed projects.
- FPC dylib support using {$linklib} for finding dylibs.
- Added a button in "advanced settings" for quickly switching to
and from the experimental ObjP compiler.
- The option -mmacpas is no longer part of the default! And if you
plan on using Objective Pascal, don't type it in as global default! You
don't want it. Put -mmacpas in .options files for your Carbon projects
and you will be fine.
News in TransSkel 5b5:
1. TextFace support in QDCG!
- All "Stroke" calls removed from QDCG. Instead, TextFace now
supports outline. TextFillColor controls the inside of outline fonts
(which was always transparent in QuickDraw).
- GetFontInfo implemented using ATSUI calls, and prepared for
future CoreText implementation.
- TextFace now supports underline, strikethru, double underline,
overline, condense, extend, shadow.
- TextFace supports italic and bold in a simplified, preliminary
version. (Will fail sometimes.)
- The new call TextExtend added to allow detailed extend/condense
control, sets the amount that extend/condense will change the text.
(Default is 1.5.)
- New QDCG demo, QDCGTextDemo.
2. Updated for synchronizing with the current Objective Pascal.
(With much help from Richard Ward!)
- Added NSApplicationDelegateProtocol to AppDelegate declaration.
- Removed (commented out) index-based EnableMenuItem and
DisableMenuItem, due to itemAtIndex no longer working. Will be put back
when it is possible.
- Added init to all NS objects that are alloc'ed with no init
(controllers, delegates, NSTimer, NSNib).
- Added itemAtIndex to the CocoaAll code, a change I can't easily
include in my distributions! This is a bug in CocoaAll. You fix it by
editing NSMenu.inc and recompiling CocoaAll.
- Lightweight IDE was changed to produce more correct application
bundles, only referring to a nib/xib if it exists. You should strongly
consider a complete rebuild if you have old code, trashing both old
built programs and the intermediate-filer folders.
3. Other changes
- TransEdit and TransDisplay renamed TransEdit5 and TransDisplay5,
to avoid confusion while both versions 4 and 5 must live side by side
for quite some time.
- Modifiers now work for keydowns. (Already worked for mouse
downs.)
- Supports xib, not only nib.
- Detects the main nib if it is called either main (as before) or
mainMenu (common in demos).
- Detects if a nib/xib is available, and only in such a case refers
to it in the info.plist.
- Doesn't try to create a nib reference if no name is given.
- Text views handle controlTextDidChange in order to update the
controlled variable while typing. I believe that is what we usually
want. (If not, I can make the setDelegate optional.)
- SkelSetRealStringViewHandler now uses SkelSetRealValue, which
gives decent formatting. (But it would be even better to use Str() with
some formatting control.)
- Generally replaced the ".p" extension with ".pas".
Installation
Lightweight IDE itself needs no installation, just unpack.
However, you must install:
- Apple Developer Tools, for GCC and its tools, both for using GCC
from LWP and since FPC needs the GCC linker. Download from Apple.
- For Pascal, Free Pascal version 2.0.4 or better, both PPC and
Intel versions if you plan to build universal binaries. Get it from the
Free Pascal archives. (Note that for old versions like 2.0.4, many
demos will need you to edit MacOSAll to the older name FPCMacOSAll.)
- GPC can also be used. (Support without makefiles added in 0.6.)
For using Objective Pascal, you need to install the preliminary
FPC 2.5.1. For getting started easier, here is an installer (tested
under 10.5).
Installer for FPC 2.5.1 with
Cocoa interfaces (for getting started easier with Objective
Pascal)
Demos and reusable code
The number of demos for Lightweight IDE is getting out of hand.
Thus, new or particularly interesting demos or units are listed here
as separate downloads. (Newest last.)
Lightweight IDE
demos The complete demo package except OpenGL demos. Big archive,
since executables are included. (Updated 120218.)
TransSkel 4.0.6 (Updated 120218.) A
callback based
framework to simplify Carbon application development. A new,
Cocoa-based version is available above. Old version: TransSkel 4.0.5
OpenGL demos A set of selected
OpenGL demos by Ingemar.
CarDisplay New demo by Saabino
D'Elia.
QDCG Much of QuickDraw re-implemented on
top of Core Graphics, with two demos. (Note: Old version! The new
QDCG is part of TransSkel 5 and much extended.)
New CarbonStandardFile
CarbonStandardFile is in the TransSkel package, but this is newer
than the one in 4.0.5. (Note: This is now abandoned and replaced by
NSStandardFile, part of TransSkel 5.)
pngdemo: Demonstrates how to load a PNG
file to an OpenGL texture.
SimpleAudioMovie: Demostrates
how to play a QuickTime movie with modern calls, audio only.
openal_fpc: Or "Ingemar's OpenAL Kit
for FPC". It is based on code from several sources on the web, merged
and rewritten into a more complete kit.
textureFont-with-demo.zip:
This is a C only demo of how to render a texture font on OpenGL. It
uses pnglite for texture loading.
pnglite-with-demo.zip:
pnglite is a smaller and easier replacement for the more
common libpng, written by Daniel Karling. I have added a demo program
(C and FPC), loading a PNG to an OpenGL texture, and FPC interface.
Simple Objective Pascal demos:
Three demos, Skel, Minimal and MinimalAnimation, all also available
in Carbon versions in the standard package (above). Here they are
rewritten in Objective Pascal, as nibless Cocoa applications.
ToolbarSample: Cocoa demo from
Apple, adapted to Lightweight IDE and, most significantly, ported to
FPC/Objective-Pascal.
GlutGears: New version of a classic
OpenGL demo, now with FPC version (as well as C) and better timing.
Ingemar's Objective Pascal
demos: A bigger set of Objective Pascal demos, including the
"simple" set above but extended with demos for menus, text editing
(with line numbers!), toolbars, file dialogs, sheet alerts and
tables.
Old versions
Old versions are listed
here.