Fiddle is a lightweight tool to edit, compile and run simple scripts/snippets in any of the supported languages.
The purpose of Fiddle is to simplify the Task of quickly creating small code snippets, like file-rename-scripts.
Instead of:
Open Visual Studio -> (wait) -> File -> New -> New Project -> .NET -> Console App -> (enter name) -> Create -> (wait) -> Open Program.cs
-> Write code -> Build -> (wait) -> Start
Do: Open Fiddle -> Write code -> Start
These features apply to all imported languages
- Rich UI thanks to the Material Design in XAML library
- Editing code with custom syntax highlighting
- Compiling code with result view including diagnostic messages, error messages and even line markers
- Executing/Evaluating code/scripts and viewing results (+ expanding arrays/collections)
- Customizing settings and resuming last session (window position, location, code, etc)
- Saving code to file
- Loading code from file (via drag and drop)
- Seamlessly switching between languages
A directory will be created at %appdata%\Fiddle
containing Preferences.json
(crash reports will be stored as "error.txt
").
Preferences.json
can be edited with the Settings window in Fiddle or by manually changing it via any text editor.
However, the settings window cannot modify the imports[]
, DefaultCode
and window dimensions/cursor position properties, this is not fully implemented. For now you can use Preferences.json
to manually edit these.
-
Visual Studio
- Open
Fiddle.sln
- Set build target (Debug: development, Release: portable releases, Publish: InnoSetup installer)
- Build Solution/Fiddle.UI (Ctrl + Shift + B)
- Open
-
Command Line
- Run
nuget restore
command inFiddle
directory (Requires NuGet installed and configured in Environment variables) - Run
msbuild Fiddle.sln /t:Build /p:Configuration=Release
ormsbuild Fiddle.sln /t:Build /p:Configuration=Publish
for InnoSetup installer (Requires MsBuild installed and configured in Environment variables)
- Run
- Fork Fiddle and clone the fork.
- Make changes
-
Make bugfixes or other changes
.. or ..
-
Add a new Compiler
- Create new classes in
Fiddle.Compilers\Implementation\[LanguageName]\
:..\[LanguageName]Compiler.cs
:ICompiler
..\[LanguageName]CompileResult.cs
:ICompileResult
..\[LanguageName]Diagnostic.cs
:IDiagnostic
..\[LanguageName]ExecuteResult.cs
:IExecuteResult
- Implement Interface functions and Constructor(s) (Example:
CSharp\CSharpCompiler.cs
) - Add Language Name (filename-friendly) to
Fiddle.Compilers\Host.Language
enum with user-friendly[Description("..")]
Attribute - (Optionally) Add Language to file-extension converter functions in
Fiddle.UI\Helper.cs
(Fiddle.UI\Helper.GetFilterForLanguage(..)
, ..) - (Optionally) Add Syntax highlighting definition to
Fiddle.UI\Syntax\[LanguageName].xshd
- (Optionally) Add Documentation (using this template, or this example) to
Doc\[LanguageName].md
and linking it inDoc\README.md
- Create new classes in
-
- Commit & Push
- Create a new pull request (on your fork)