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 restorecommand inFiddledirectory (Requires NuGet installed and configured in Environment variables) - Run
msbuild Fiddle.sln /t:Build /p:Configuration=Releaseormsbuild Fiddle.sln /t:Build /p:Configuration=Publishfor 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.Languageenum 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].mdand linking it inDoc\README.md
- Create new classes in
-
- Commit & Push
- Create a new pull request (on your fork)
