Skip to content
/ CIARE Public

Simple text editor with C# runtime compiler and code execution

License

Notifications You must be signed in to change notification settings

0x78654C/CIARE

Repository files navigation

CIARE

Simple text editor for Windows with C# runtime compiler and code execution using Roslyn. Useful to run code on the fly and get instant result.

alt text

Features

  • Open/Save current text.
  • Search for text in editor.
  • Load predefined C# code sample template.
  • Display current edited file (Using * on application title near file path ).
  • Compile and run code on ram using Roslyn.
  • Compile code to binary files(.exe or .dll).
  • Show runtime(ms) for code compile and exectuion or compile only.
  • Hotkeys for mentioned above features.
  • Drag & Drop
  • Display output result and errors (ID and message).
  • Highlight code fore various of programing languages.
  • Find and replace text.
  • Show/Hide output window with current state stored for next run.
  • Auto hide/show output window.
  • Split editor window.
  • Set Command Line Parameters.
  • Go to line number.
  • Display total lines for editor data.
  • Display caret position (Line, Column)
  • Folding by curly brackets, region and others.
  • Autosave font size on editor zoom.
  • Code completion (intellisense)
  • Build options(Debug/Release - Any CPU/x64)
  • Enable/disable warnings messages on compile.
  • Mark files for open on next application start or Windows logon.
  • Target desired framework(.NET6, .NET 7 or .NET 8) for use when a application is compiled.
  • Live share: share and work in same time at a project/file data.
  • Generate code/data with chatGPT from OpenAI.
  • Add reference to custom managed libraries.
  • NuGet Manager
  • Usage of unsafe code.

Requirements:

.NET 6 SDK

For Roslyn C# code runner use NuGet command in Commands project:

Install-Package Microsoft.CodeAnalysis.CSharp -pre

For Roslyn C# compiler to binary use NuGet command in Commands project:

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -Version 4.1.0-preview1

Mono.Cecil library.(Used in current project is an older version. Can be found on 'Lib' directory.)

Install-Package Mono.Cecil -Version 0.9.5.4

log4net library.

Install-Package log4net -Version 2.0.14

As code highlighter I use ICSharpCode.TextEditor.Extended forked from https://github.com/megakraken/ICSharpCode.TextEditor For code completion I use the libraries(ICSharpCode.SharpDevelop.Dom,ICSharpCode,Core and NRefactory) from https://sourceforge.net/projects/sharpdevelop/files/SharpDevelop%203.x/3.2/ version.

Live share

With Live Share you can work on same project/file in same time with another person.

Project is based on https://dotnet.microsoft.com/en-us/apps/aspnet/signalr library.

Requirements:

A hosted CIARE Live Share API: https://github.com/0x78654C/CIARELiveShareAPI for managing connection.

Setup:

  1. Save your API link in Settings tab -> Options -> Live Share

alt text

  1. To start a Live Share connection go to Live tab -> Live Share Manage and click on 'Start Live share' button. After the live share is started give the Session Id and Password to the person you want to share with.

alt text

When live share is started and connection to API message box will be prompted a red notification bubble will appear in right-up corner that notify you that is broadcasting and current tab is colored red aswel. In the process of live share tabs cannot be closed.

alt text live2

  1. To start a remote connection go to Live tab -> Live Share Manage and add your given session id and password and add them to 'Remote Session Id/Password' text boxes. After click on 'Remote Connect' button. Same here will be notified with a the red dot when broadcast is started.

alt text

INFO: Maximum connection are two / session id. After connection is made the remote connected user can see host user data but can edit just after host made the first edit on data.

Live share video sample

ls_last.mp4

ChatGPT autocomplete

ChatGPT is chatbot from https://openai.com that uses AI with GPT3 integration that answers questions with a very precise output. That been said chatGPT can be even be used as code generator for your projects.

  • Usage:
  1. Add your OpenAI API key in Settings>Options
  2. Add the amount of maxim tokens to be displayed. More info at https://beta.openai.com/tokenizer
  3. Write your question in editor using the following format image
  4. Got to Edit>ChatGPT or press hotkeys CTRL + Shift + P

Answer will be display automatically in your editor.

ChatGPT code generator video sample

gpt_sample.mp4

NuGet Manager

Download NuGet packages directly from https://www.nuget.org/ and use it in CIARE instantly. It will be downloded latest package autmatic.

nuget_final.mp4

Sample pictures

alt text

alt text

alt text

alt text

alt text

HotKeys

----------- File management --------------- 
CTRL + N         : Empty the current tab file and sets to new page.
CTRL + O         : Open file.
CTRL + S         : Save to data to current file if changed.
CTRL + Shift + S : Save data to a new file name or existing one.
CTRL + T         : Load C# Main template.

------------ Editor management ------------
CTRL + Z         : Undo last modifications.
CTRL + Y         : Redo last modifications.
CTRL + Delete    : Delete words to right.
CTRL + Backspace : Delete words to left.
CTRL + D         : Delete current line.
CTRL + Shift + D : Delete from cursor to end of line.
CTRL + X         : Cut selection.
CTRL + C         : Copy selection.
CTRL + V         : Paste selection.
DEL              : Delete Selection.
CTRL + F         : Find text in current tab.
CTRL + H         : Replace text in current tab.
CTRL + G         : Go to line number in current tab.
CTRL + A         : Select all text in current tab
CTRL + Shift + P : Get data from chatGPT by your provided text pattern.

---------------- Compile ------------------
F5               : Run current cod.                
CTRL + B         : Compile code from current tab to executable file. (.exe)
CTRL + Shift + B : Compile code from current tab to dynamic-link library. (.dll)
CTRL + L         : Add command line arguments.
CTRL + R         : Add external reference or download from NuGet.

------------------ View -------------------
CTRL + W         : Split window vertically.
CTRL + Shift + W : Split window horizontally.
CTRL + U         : Switch between splited window area.
CTRL + K         : Show/Hide output window.

----------- Tabs management ---------------
CTRL + Tab       : Adds new tab.
CTRL + Left      : Switches tabs to left.
CTRL + Right     : Switches tabs to right.

----------- Live share management ---------
CTRL + Q         : Start live share management window.