Mikayla's Journal - page 6

MonoDevelop Tips: Fullscreen Modes

Sometimes it’s useful to be able to focus only on your code without the distractions of the pads and the rest of your desktop. MonoDevelop has two ways to make this easier.

More …

MonoDevelop Tips: Import Type

One of my favourite features that we added to MonoDevelop 2.4 is the “import Type” command. It is accessed using the keybinding Ctrl-Alt-Space, and shows a list of all types in all namespaces in all referenced assemblies.

More …

MonoDevelop Tips: Completion List Filtering

MonoDevelop makes it really easy to search the code completion list. As you type, it breaks down the string you enter into word fragments on camelCase boundaries, then matches these fragments against the beginnings of the words in the completion list. The list is filtered to show only the items that match, and the matched parts are helpfully highlighted in blue.

More …

MonoDevelop Tips: Key Bindings

Key bindings are an important part of an IDE, as they make it possible to work efficiently using the keyboard. A key binding is a combination of keys that, when pressed simultaneously, activates an IDE command directly. This post explains the key binding system in MonoDevelop, how to find out what key bindings are available, and how to customize the bindings to suit your needs.

More …

T4 Templates in MonoDevelop

A few weeks ago, I travelled to GDC and MIX. While in planes, airports and in spare moments in the conference, I implemented a feature I’ve wanted for some time - integrated T4 templating. This takes the T4 engine that I wrote for ASP.NET MVC templates, and exposed it within the IDE as a “custom tool”, like Visual Studio does.

More …

Iterator-based Microthreading

Back in May, I was wrapping PhyreEngine and porting the samples to C#. To extend one of them and demonstrate some of the capabilities of C#, Miguel and I decided to use simple iterator-based microthreading, which simulates multithreading but with many microthreads within a single real thread. Unity> does something like it in their game engine too. It enables you to use a very imperative style of coding, as if using a single dedicated thread for each, but without anywhere near the overhead of real threads.

More …

Integrating a GTK# Application with the Mac

In this follow-up to my post on turning a GTK# app into a Mac app bundle, I describe how to integrate your application with Mac-specific features such as the main menu, the dock, and file/URL events. This is based on the work I did to integrate MonoDevelop and MonoDoc with the Mac, and largely involves cherry-picking code snippets from these projects. Although it would be nice to isolate this code into a library, I don’t have the time at the moment to maintain such a library myself.

More …

Creating a Mac App Bundle for a GTK# Application

While making the MonoDevelop and MonoDoc packages for Mac I learned a few things about adapting GTK# apps for Mac, and I’d like to share them so that anyone else who’s built a GTK# app on Windows or Linux can provide a nice self-contained Mac app bundle for their Mac users. This first part will cover building an app bundle, and a later post will cover building platform-specific code paths so that your app integrates with the main menu and dock.

More …

Long Time No Blog

It’s strange to think that’s it’s 2010 already and I haven’t blogged since June. It certainly hasn’t been for lack of things to blog about — if anything, I’ve been too busy working on things to blog about them, so whenever I’ve had something to share I’ve usually used Twitter because much easier to fire off a quick tweet than to write a blog post.

More …