Sunday, 24 August 2014

AbstractCode - New compiler front-end

Hey guys,

It's been a while, I know, and the reason for that is that I've been working on something rather big and ambitious for a while again.

Today I present you AbstractCode, a compiler front-end framework. This framework allows you to parse source codes written in C# (and VB.NET, however its development is way behind the C# parser), and access it through a so called Abstract Syntax Tree or AST for short. Furthermore, this will allow you to resolve member references specified in the code, such as type or variable references. It will also detect some of the syntax errors as well as some deeper analysis such as ambiguity and unknown identifiers. When the AST is acquired from the input source code, it is possible to add and remove members to the tree or modify them. Last but not least, after applying modifications to the AST, it is possible to write formatted C# and VB code from it again.

Below are some screenshots of the test application I quickly made. The left side is where the input code should be typed in, and the TreeView at the right represents the AST that is being generated from the source.

 When we try to resolve an identifier, such as the "Console" word in the example below, we get an instance of a ResolveResult class that gives us information about the identifier.

 It also works with local variables and members defined in the source itself. Below an example of the resolution of the identifiers x and MyObject in the MyMethod method which are both declared in the source.

This engine can be used for deep analysis of source codes, give suggestions like IntelliSense of Visual Studio, or refactor the code by renaming symbols or improving the source code by adding some modifications. In the end this is going to be integrated within LiteDevelop, in order to have a more powerful code editor.

Let me know what you guys think of it.


Thursday, 31 July 2014

DotNet Resolver manual update (v3.3.0.1)

Hello everyone.

Today I would like to apologize for everyone that sent me an error report through the error reporting of DotNet Resolver, because I didn't receive any of them. In order to fix this issue, I had to solve a couple of problems, which results in a manual update of DotNet Resolver.

To download the latest version, go to the normal web page and pick the latest one:

I am sorry for the inconvenience.


Wednesday, 23 July 2014

LiteDevelop - References dialog update

Hey all,

Short post for today. Tell me what do you think of this little update:

Much better than the old one isn't it? ;)


Saturday, 28 June 2014

LiteDevelop - Error underlining

Hey what's up

Forgot to post something about the new small update of LiteDevelop, so here it is anyway. From now on, whenever you encounter an error or a warning in the code, the program will underline the word / symbol that is at the error's location. You can hover over this word to get the message.

Warnings and errors
Tooltip on mouse hover

Also, whenever you close a solution, either by pressing "Close Solution" in the File menu, or by closing the window, all your opened tabs will be saved and reopened again when you reload the solution the next time.

Friday, 20 June 2014

LiteDevelop v0.9.2 - Better support for templates

Hello everyone,

After not committing any changes to the repository for like a week, I've finally released a mayor update. I added better support for templates. The program will search for *.template files, which are xml based documents containing data about the files and contents to be added. This allows us to create templates super easily, and thus making it easier for the user to create their programs :).

Take a look at this screenshot:

Here is a list of the templates added so far:

Thursday, 19 June 2014

LiteDevelop - Multilingual User Interface Tutorial

Hello everyone,

In this post I would like to make clear how the Multilingual User Interface (MUI) system works in LiteDevelop, so if you feel you want to contribute to the project, you can make a translation of the program in your language!

First you need an account on github and be sure you have a fork of the project:

After that in your fork, go to /Main/LiteDevelop.Framework/Mui/languages.xml and make sure your language is added to that list. If not, add a line in the following format:

<Language name = "Display name" id = "identifier" />
Next step is finding all locations of the Mui directories that hold translations of the application. The main application and every extension do have a Mui folder. Currently there are three extensions, so that makes four folders in total by the time writing this, but there might be more in the future. The structure however stays the same so this would apply for any extension that is being added.

Here are the four folders that are currently available:
Create a new xml file and give it the same name as the identifier specified in the languages.xml mentioned before. You can use the english.xml file as a template. Now start translating!

Be sure to include this file in the project and be sure the file will be copied to the output directory. You can use Visual Studio for this by setting the "Copy to output directory" property to either "Copy always" or "Copy if newer".

That's it! If you did everything correctly, you should be able to select the language in LiteDevelop's options dialog and you'd be good to go.

If you are finished, make sure you send me a pull request on github so I can merge your changes with the main repository.

Happy translating ;)

Saturday, 7 June 2014

LiteDevelop - Resource editor

Hello all,

I have not been updating this a lot as I've been very busy with school. I found I should post something to indicate I am still alive and working on LiteDevelop.

So I've added the resource editor, which will allow you to open, edit and save .resx and .resources files. Take a look at the screenshot:

I will need the guys who have translated my program again, so please contact me if you want to help me with making this in your own language!

I also added a new configuration called "minimal", which builds the project excluding all xml, pdb and help files, resulting in a file size of just 2-3 megabytes instead of about 7 (release) or 15 (debug).

Friday, 25 April 2014

LiteDevelop v0.9.1 - Debugger added

Good day everyone!

Today I'd like to announce that I have implemented the debugger extensions in LiteDevelop!


Added extensions:
  • LiteDevelop.Debugger (Debugger base)
  • LiteDevelop.Debugger.Net (.NET debugger)
The debugger base acts as a framework library for any debugger extension. It creates the most commonly used debugger windows like the variables and call stack components. The .NET Debugger extension is just an implementation of this framework.

Tuesday, 25 March 2014

LiteDevelop released (finally :3)

Hi everybody,

Been a while but I finally uploaded LiteDevelop to github!

In case you didn't know anything about LiteDevelop yet:
LiteDevelop is a free, light-weight and open-source Integrated Development Environment (IDE). It serves as a light-weight and open-source alternative to Visual Studio and is able to be launched from a removable drive such as USB sticks or SD-cards. Thanks to its extendibility, it provides you with the opportunity to add any features you like, and remove any features you don’t like. Thus giving you more control on how big and heavy the application will be.

Program is far from finished. Expect bugs (especially with the forms designer >_< !).

Gimme teh Screenshots:

Code editor
Forms designer
Re-arrangeable workspace

I hate my bloody Dutch accent but oh well here is a video .____.

Source repository:

Go to the repository, download the source and use one of the batch files to compile the project. An file called LiteDevelop.exe will be created in the Bin\Debug or Bin\Release folder which is relative to the root of the project.

  • Framework 4.0 full version, (not the client profile only!)
Want to contribute? (please do!)
  • Fork the project and solve bugs!
  • Write extension modules / features
  • Write language packs