4coder » Blog

Hello everyone! In lieu of a 4coder Friday this week I am going to explain the direction of the Lister API and how it has surprisingly affected some of my long term plans for 4coder.

The Original Lister API Plan

When I first set out to create a Lister API the idea was to just provide a short term hack that would hold over users who want to customize the file lists in 4coder, and who want to create similar lists for other commands. I assumed it would be temporary because I want 4coder's customization layer to expose more ...
Read More →


Allen Webster  — 1 month ago
Err sorry... somehow I accidentally posted the topic twice. Please read and comment here:

Read More →

Hey everyone!

After yesterday's 4coder Friday stream I was trying to come up with a list of things I should do next, and I decided that the next thing to do was the listing API, but since that could be a four to six week endeavor I thought I should get all my recent tweaks out first. So I just published 4.0.28 which you can get here.

Next I'm on to exposing that listing UI to the custom API and implementing all the cool stuff I can think of with that feature.

Read More →

4.0.27: Project Features Upgrade

Allen Webster  — 2 months, 2 weeks ago
Hey everyone!

With this build, my first step of the 4.0.X retirement schedule is complete!

The majority of the new features were already working a week ago, so I got to spend some good time using them, and I'm very happy with this build. The new project system in particular has simplified my workflow even more than the old project system. This build also moves several more options to the config file, specifically font size, and control over the scroll bar and file bar. Until now these were all controlled by command line parameters, or hard coded ...
Read More →

Schedule for New Builds

Allen Webster  — 3 months, 2 weeks ago
Heyo everyone!

I've been a bit quiet on the blog here as my life has been in a state of constant change since January. I did some 4coder Friday streams in February and March in which I established a testing system for 4coder - something it has desperately needed for about a year. I didn't do much besides respond to questions and bug reports in April, but I did have time to think over exactly how I want the next few steps forward to look. So here's what I am thinking will come next for 4coder:

I. The ...
Read More →

4.0.26: A Round of Bug Fixes

Allen Webster  — 3 months, 2 weeks ago
Hey everyone.

Just a quick announcement that a new 4coder build has just gone live. 4.0.26 is the first new build in 2018 and the beginning of the 4.0.X retirement plan. This build fixes a lot of the bugs that have been reported since the end of 4coder November, which was the last time I made a major push.

With this build done I will now begin executing the schedule I laid out in my previous post.

Later everyone!
Read More →

The Patreon Closing Post - Archived

Allen Webster  — 8 months, 1 week ago
When I shut down my Patreon creator page it hides the posts I have made on the site. So this is an archive of my Patreon shutdown post.


Aloha everyone!

I have been looking for the right word(s) to shutdown my Patreon for a few days now. For anyone who doesn't already know, Patreon is changing their fee schedule and they are shifting more costs onto backers, and they are doing all of this with only one way to opt out: get off the platform. And, well, I am opting out.

Now, I want to impress onto all ...
Read More →

4coder November - End of Month Summary

Allen Webster  — 8 months, 3 weeks ago
Hey Everyone!

The month of November has passed, and the last of the 4coder progress has been published on Patreon (the itch.io release in a couple days).

So, considering my original todo list, where did I get? Here is a summary of my original todo list with plusses on the finished items:

  • [+] Mac
    • [+] Core platform features
    • [+] Multiple built in mappings
    • [+] Runtime mapping changes
  • [ ] Behavior Cleanup
    • [+] Properly configure OpenGL
    • [+] Organize rendering layer and reduce redundant OpenGL calls
    • [ ] Better behavior with saving read only files
    • [ ] Better behavior with failure to save file
    • [+] Delete and rename files, and make directories without switching ...
Read More →

Hey Everyone!

I just published 4.0.24 on itch.io, check out the devlog for info on what the new build includes.

In this post I want to outline my decision about what to do with one more week of 4coder November. Looking through my original todo list, and my updated todo list, there are a lot of possible candidates. A list of the many things I could pick from this week:
  • Query bars that accept commands, such as paste, just like regular buffers
  • Undo/redo cleanup and API
  • New command mappings to make a more notepad/sublime style ...
Read More →

Hey everyone!

As should be expected I got a lot of bug reports on the new Mac build, and the platform reorganization also effected Windows and Linux and I got some bug reports for that too. I've now released a build that should fix all the bug reports I got on 4.0.22, except for the request for full Mac keyboard support, which looks like it's going on the long term todo list.

With bug fixes out of the way, I am now moving on to the things I said I was moving on to when I ...
Read More →

Hey everyone!

As of right now 4coder 4.0.22 is up on the itch.io page. You can get the free version on Windows, Linux or Mac. And for the first time ever you can buy the full version which includes this and all future 4.0.X builds in one purchase.

The new build also features renderer improvements to help speedup rendering, remove some rendering bugs, and speed up the process of tracking down remaining rendering bugs. And there is now room in the system for alternate renderers, further broadening the extent to which I will be able ...
Read More →

Hey Everyone!

First things first, this entire blog post was written in 4coder on a Mac! It was the first dog fooding I did for the new Mac version of 4coder. If you are reading this, then the first test must have gone pretty well!

Here on the first full week of 4coder November, I am writing, for you, a full-detail list of the things I am working on this month. If your #1 feature request or issue is not on this list let me know, I don't want to forget anything big! Also I won't necessarily get ...
Read More →

Hey everyone!

I've got some new plans about the schedule for 4coder builds, and how I will distribute them. I made the full post on Patreon: full post.
Read More →

Hey there everyone! This post is only a 4coder progress update in the sense that it features some code samples from recently written parts of the 4coder engine update "4.1.X".

This is more of a technical write up for discussion purposes. I have a neat thought about "abstractions" which we discuss a lot in the Handmade community, and to explain it I'd like to talk about the abstractions I have found useful in 4coder, and the abstractions that hurt more than they helped.

Of course I realize I might just be wrong, or my ideas here might ...
Read More →

For a while now I've been thinking things over, and I've decided to embrace a new direction for 4coder.

To anyone using 4coder, don't worry I am not about to leave you without an editor. This is actually not really a big change for users, because the project has been naturally pushing in this direction for a while. I just haven't officially embraced and announced the change until now.

Basically what I've come to realize is that the original vision of code intelligence that I set out to experiment with has fallen away. There are ...
Read More →

4coder: What is Happening Lately

Allen Webster  — 1 year, 1 month ago
It seems that it has been a while since there was a 4coder update, but there has been plenty of progress.

Lots of the progress has gone into the new buffer handling engine which is not yet at a point where it does something you can see, but that will change soon. I would estimate that it will be past half way done by this time next month, which is a slightly slower pace than I originally hoped, but it still has the new engine ready well before the end of 2017. Here and there I have also mentioned that ...
Read More →

4coder: Status and Next Steps

Allen Webster  — 1 year, 3 months ago
So I just got a new build out today (4.0.19) fixing some lingering problems with Unicode and the Lexer. As I explained last month, I'm starting work on a new buffer engine now, but it's going to be a little while before that is ready, so I'm splitting my 4coder time between that and small builds like this one. By the way, that new engine is not yet at a demonstration point, but I did have a break through on how to solve virtual whitespace + comments interactions, which has been puzzling me for a while ...
Read More →

4coder 4.0.18: Pushed to the Limit

Allen Webster  — 1 year, 4 months ago
Hey everyone!

The newest version of 4coder, 4.0.18, will be the first to feature full unicode support. As of today I have all of the unicode features working that I want for the build. 4coder now translates UTF8 into codepoints, and the font system supports rendering all the codepoints provided by a font. I restructured the font system so that now users can drop .ttf files into the new font folder and 4coder will load them at launch. It looks like everything will be ready to ship in just a few days, once I finish doing a few ...
Read More →

4coder Fridays

Allen Webster  — 1 year, 5 months ago
A history of 4coder Fridays

The term "4coder Friday" was first coined by Casey Muratori, back in late 2015/early 2016. That was about the time that Handmade Hero started making the transition to using 4coder and so occasionally a little bit of prestream time was dedicated to exploring the configuration. It wasn't every Friday, nor was it always on Fridays, but the term 4coder Friday was just so fun to say that it stuck.

In February of 2016 I switched to using 4coder full time, so that I could make sure it was prepared for Handmade Hero to ...
Read More →

So it's been over two years since I started 4coder, and I don't think I properly slowed down and cleaned anything up at all during the 2016 portion. I can't even remember what 2015 4coder was like, but I figure I probably was even less disciplined back then. So for that reason the project I took up a while ago of carefully considering the organization of the code and the major systems is still going on. Since cleanup doesn't lend itself to new features I have also split my 4coder time between little features I can ...
Read More →

4coder's New Project Files

Allen Webster  — 1 year, 7 months ago
This is a post to briefly describe the new 4coder project file feature in alpha 4.0.14.

The feature is meant to support the common situation where just having one build rule that is always in a "build.bat" or "build.sh" for the entire project is not always enough. Obviously anyone with access to the customisation layer has always been able to extend this, but the project file system creates some built in project configuration possibility. It also solves several other smaller issues, but we'll get to that in a minute.

The way it works is you ...
Read More →

New 4coder Information Site

Allen Webster  — 1 year, 8 months ago
Through November I have been building up an information site for 4coder and today I posted it at 4coder.net. I still need to fill in lots of the information which I will continue to do over the next few days. A lot of people have asked for different information pages including a features list, a road map, and tutorials, all of which will be going on the site. I will also be posting the 4coder API documentation there from now on. If there is any category of information you would like to have on 4coder that is missing let ...
Read More →

4coder October Update

Allen Webster  — 1 year, 9 months ago
Hi everyone!

It has been a big month for 4coder. Just today I released alpha 4.0.12. I finally switched over to the gap buffer, and eliminated the transitional framework that I first constructed eleven months ago. Getting rid of that extra complexity bought me a great deal of room in my "complexity budget", and I spent it on new features in the buffer system.

The immediate upgrades are the systems for arbitrary wrap positions, and virtualized white space at the beginning of lines, which have allowed me to create a code smart line wrapping system, or "code wrapping ...
Read More →

The 4cpp Lexer: Version 1.1

Allen Webster  — 1 year, 11 months ago
Dear everyone,

Two weeks ago I shared version 1.0 of the 4cpp lexer with my backers on Patreon, and I promised after a two week period, everyone who came here to this fabulous handmade.network would have free access to the library. But since then I have made a few improvements to the system. The new improvements make the system even easier to use, more efficient, and expose the entire relex system, which now supports the same input chunking that the main lexer supports. Therefore today I'm not going to release the library that I promised to release ...
Read More →

The 4cpp Lexer: Version 1.0

Allen Webster  — 1 year, 11 months ago
A long long time ago, at least a year ago, I decided I would contribute the code parsing system in 4coder as free and open software for our community. I released a little example of what I thought it might be like way back then on Patreon, but since then there's been nothing. I've been waiting because I just wanted to make sure that when I actually "released" something it would be really well thought through.

As of this morning I think a release lexer is ready and I have prepared the package!

The lexer supports all sorts ...
Read More →