|
|
Snippet Compiler
Jeff Key
August 22, 2003
Updated May 9, 2004
Hello, this is the Snippet Compiler Version 1 page. A newer, version 2 perpetual
beta is available here.
If you're like me, you probably have hundreds of Visual Studio solutions that
consist of a few lines of code to test out something outside the scope of
whatever you're currently working on. Of course there's nothing wrong
with that, but the time it takes to launch a new VS.NET, create the project
and so on is just unnecessary. Today one of the voices in my
head said that it's easy enough to compile code using the framework, so why not
do something about it, so I wrote this little thing. (It then told me to
eat lunch, which I dutifully did.)
Snippet Compiler leads a simple life. Here are its features:
-
Compiles and runs single or multiple C#, VB.NET and ASP.NET snippets.
-
Optionally builds WinForm EXEs, console EXEs or DLLs.
-
The user can store a library of templates.
-
Displays compile errors and warning, including wave lines in editor with
error/warning tooltips.
-
IntelliSense for static members and method signatures, as well as constructor
signatures.
-
Imports VS.NET projects.
-
Conveniently sits in the notification area waiting to be useful.
-
Exports snippets to HTML/RTF.
Special thanks to Syncfusion for
donating their excellent Edit
control and the following for donating before we knew we'd get it for free:
Niels Berglund, Darren
Jefford, Ryan LaNeve,
Jason Mark, Matt Hawley,
Damon Ronco, Omar Shahine,
Brenton House and Vasanth
Dharmaraj.

Changes in v1.11
-
Added tooltip to editor tab pages to display full filename
-
Added Edit|Replace
-
New Syncfusion control fixes two reported bugs:
-
Horizontal scrollbar is now accurate
-
Previously, if a completion character was pressed while an IntelliSense textbox
was visible and an valid item wasn't selected, any text after the preceding
period was deleted.
-
Added "Export HTML to Clipboard"
-
References are validated before being used.
-
Fixed problem some people had where build was successful but they got null ref
exception after build.
-
Minor additions/changes
Changes in v1.10
-
Added the ability to force the compiled snippet(s) to use a legacy runtime and
Framework assemblies
-
Added C# compiler option "Allow unsafe code blocks"
-
Added tooltip for errors/warnings in code
-
Added syntax definition files so the user can change them manually
-
Added Saved Snippets folder
-
Now, when a user tries to save a file that was opened as a template (from the
New menu), the file is not saved automatically in the Templates folder; the
Save As dialog is shown with the Saved Snippets folder as the initial folder
-
The user may still save a file as a template, but must manually navigate to the
templates folder to save
-
All files/folders in the Saved Snippets folder are shown in the Open menu
-
The Saved Snippets folder can be changed by the user in the Options
dialog
-
Added a proper References dialog
-
XML documentation (which drives the verbose IntelliSense descriptions) is now
loaded for every referenced assembly if it is available.
-
Added some helper methods to the default snippets
-
Added compiler warnings to the "Errors" display
-
Added intellisense for namespaces
-
Added notification area icon context menu to Open & Exit
-
Added workarounds for users running at 120 DPI experiencing GDI+ bug
-
Changed: Cleaning up all
files created during session
-
Changed behavior of notification area icon: Double-click to open/set focus,
right-click for context menu
-
Minor additions/changes/fixes
Changes in v1.9
-
Updated IntelliSense method info to mimic VS.NET ("<returnType>
<type>.<member>(<arglist>)")
-
IntelliSense now shows all static methods, props and
fields off of resolvable types (ie. things in the loaded Framework
assemblies)
-
IntelliSense for method and constructor
signatures
-
Added method, constructor descriptions for classes
whose XML documentation is in the IntelliSense folder.
-
Added Lutz Roeder's CommandBar menu and toolbar
-
Added nesting to the New menu item so template
snippets can be organized hierarchically via the file system.
-
Added "Kill Process" option (only works when not
redirecting output or starting via command prompt)
-
Added aliasing so things like "int" and "integer" are
handled properly by IntelliSense. Please let me know if I've missed any.
-
Added Save All
-
Added HTML and RTF export
-
Made VB.NET IntelliSense non-case-sensitive
-
Added option to create XML documentation for C#
snippets
-
Added option strict, option explicit and compare
binary options for VB.NET
-
Added Find, Find Next and Incremental Search
(courtesy of the Syncfuson control)
-
Added high performance-timing templates
-
Added "View|Errors/Output" menu option. Pops up on
compile errors or output if hidden. State is persisted between sessions
-
Added Find form
-
Added ability to compile (snippet or all) w/o writing
to a file or running. This is useful for getting error messages while coding.
-
Added "Minimize to notification area" option. (Always
did previously.)
-
Changed: When attempting to save a read-only file,
the user is asked if they would like the read-only attribute removed and
continue save
-
Changed: When doing a StartAll on a web project, all
of the web snippets' names are retained and copied to the server. Previously
only the current snippet was copied and given a generic name
-
Fixed: Got latest Syncfusion control which fixes the
erratic intellisense listbox
-
Fixed: Cursor now goes to correct VB line containing
error
-
Changed: Build|Current... and Build|All... are now
Build|Current To File... and Build|All To File...
-
Changed: CTRL+Shift+B now compiles the current
snippet w/o running/saving to file.
-
Lots of little things
September 16 Note
-
To slow down the frantic pace of releases, I've created a super-secret
Snippet Compiler Beta workspace on GotDotNet. I'll post interim
builds there as well as keep a list of bugs, known issues, etc. There's
also a message board.
Changes in v1.8
-
Added Syncfusion Edit control (donated by Syncfusion. thanks!)
-
Syncfusion Edit control supports different fonts, so editor font settings have
been re-enabled.
-
Added Visual Studio.NET project import (tested C# 2002 & 2003, VB 2003)
-
Added keyboard commands CTRL+K, CTRL+C for commenting and CTRL+K, CTRL+U for
uncommenting a line or lines.
-
Added IntelliSense for public static Console methods. (Proof of concept at this
point; using reflection, but only against Console.)
-
Added Print and Print Preview
-
Added simple performance-timing template
-
Added error squiggles to VB.NET snippets
-
Made error squiggles more accurate
-
Added "Copy" context menu to errors listview to copy error text
-
Added option to [dis]enabled brace/param matching
-
Added "Show White Space" option
-
Added "Insert spaces for tabs" option
-
Added more IDE-like features but made them optional so those that wish to use
Snippet Compiler as an IDE can, and those that do not are not bothered with
them.
-
Added "Show asterisk when content changes"
-
Added "Prompt to save on close if modified"
-
Added drag-n-drop reordering of tabs
-
Added persistence of height of error/output panel between sessions
-
When the form is resized, error text column in listview is resized accordingly
-
Noticed Syncfusion textbox has a bunch of fun stuff on its context menu
-
Fixed: Filename in tab was always lower case
-
Fixed: Exception was thrown if templates folder wasn't where it was expected.
User is now prompted to set the correct folder.
-
"Folding" has been renamed to "Outlining" to conform w/VS.NET and Syncfusion's
control
-
Note: Automatic outlining (like VS.NET) isn't implemented in the Syncfusion
control yet. You can manually outline blocks by selecting a block,
right-clicking on it and choosing "Outlining|Hide Selection" (Outlining can be
nested)
Changes in v1.7
-
Added projects so the user can save/open snippets en masse
-
Added "Build" menu so user can build Console exe/WinForms exe/DLL to a
user-specified file
-
Added "Start as WinForm" and "Start All as WinForm". These will compile the
snippets as a WinExe (so the console doesn't pop up first).
-
Added Start Minimized option.
-
Added Close All
-
Added samples showing how to break into the debugger (and info in the help
file)
-
Noticed [Shift+]Ctrl+Tab now works.
-
Noticed the icon on non 32-bit displays looked really bad, so I added more
color depths
-
Realized
CompilerResults has an Errors property. Smacked head and removed
RegExed error parsing.
Changes in v1.6
I think all of these were suggestions. Thank you!
-
Added "Start All" command to compile all snippets and run
-
Now using text editor from SharpDevelop
-
Added "Generate debug symblos" option (always did previously)
-
Now compiling from disk so if symbols are present and the debugger attaches to
the process, the source is shown
-
Added single-page web snippets
-
Added multi-snippet web pages so codebehinds and classes from other snippets
can be used
-
Persisting the size of the main window
-
Added server-side "form" tag to webforms
-
Added Save/SaveAs/Close context menu to tab pages
-
Added red error squiggles
-
Made the templates folder user-definable
-
Added option to show path in addition to filename on tab
-
Added multiselect to Open dialog so user can open more than one file at a time
-
Added horizontal scrollbar to editor
-
Added Console.ReadLine() to both default console templates
-
Fixed problem where if a web root wasn't specified when an aspx snippet was
run, an exception occurred
-
Fixed SaveAs so the tab's text reflects the new file name
-
Added Run From Command Prompt option
Changes in v1.4
-
Added Save/SaveAs/Open
-
Added independent font settings for editor, errors and output
-
Added option to minimize to tray when close button is clicked
-
Turned off word wrapping and added horiz. scroll bar in output window
-
Changed VB ctor to New (oops!)
-
Added Microsoft.VisualBasic imports to VB templates
Changes in v1.3
-
Added VB support
-
Added default compiler option for unknown file types
-
CTRL+A selects all
-
Switching tabs sets focus to the editor
-
Default and CTRL+N templates are based on default compiler
-
Added an optional download that will force it to run on v1.0 of the
framework. (Requested by a couple people.)
Changes in v1.2
-
Added Console redirect to Output window option.
Changes in v1.1
-
Added References dialog + functionality
-
Turned off word wrap
| Download |
NOTE: You must download and place the config
file below in the exe's directory for it to work on .NET 1.0. |
|
Check out Create Shortcut for easy
installation. |
| Download Config |
(Place this file in the Snippet Compiler folder to make it run on v1.0 of the
.NET Framework.) |
Back to dotnet
|
|