Fiddle

📜 A lightweight code editor for editing, compiling and running code snippets/scripts supporting multiple languages and rich GUI

21
8
C


Fiddle

Fiddle is a lightweight tool to edit, compile and run simple scripts/snippets in any of the supported languages.
⚠️ Fiddle requires .NET Framework v4.8 or above (download) ⚠️

AppVeyor Build Download Total downloads

Languages

  • [ ] C++ (TODO: everything)
  • [x] C#
  • [x] Java (TODO: Return values)
  • [x] LUA
  • [x] Python
  • [x] VB (TODO: Better Entry point)

ToDo’s

Buy Me a Coffee at ko-fi.com

Screenshots

Fiddle Demo Slideshow (See all screenshots)

Why?

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

Features

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

Cache

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.

Build from Source

Contributing

  1. Fork Fiddle and clone the fork.
  2. Make changes
    • Make bugfixes or other changes

      … or …

    • Add a new Compiler

      1. Create new classes in Fiddle.Compilers\Implementation\[LanguageName]\:
        • ..\[LanguageName]Compiler.cs : ICompiler
        • ..\[LanguageName]CompileResult.cs : ICompileResult
        • ..\[LanguageName]Diagnostic.cs : IDiagnostic
        • ..\[LanguageName]ExecuteResult.cs : IExecuteResult
      2. Implement Interface functions and Constructor(s) (Example: CSharp\CSharpCompiler.cs)
      3. Add Language Name (filename-friendly) to Fiddle.Compilers\Host.Language enum with user-friendly [Description("..")] Attribute
      4. (Optionally) Add Language to file-extension converter functions in Fiddle.UI\Helper.cs (Fiddle.UI\Helper.GetFilterForLanguage(..), …)
      5. (Optionally) Add Syntax highlighting definition to Fiddle.UI\Syntax\[LanguageName].xshd
      6. (Optionally) Add Documentation (using this template, or this example) to Doc\[LanguageName].md and linking it in Doc\README.md
  3. Commit & Push
  4. Create a new pull request (on your fork)