NoleHealth / Luthetus.Ide

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Luthetus.Ide (Not yet released)

  • A free and open source IDE being written with .NET: C#, Blazor UI, and a Photino host.

  • Runs on Linux, Windows, and Mac

Example GIF

Demo:

https://luthetus.github.io/Luthetus.Website/

Features

Solution Explorer:

solutionExplorerGif

  • Tracks the file system default namespace.
  • Interpolate file system namespace when creating a templated C# file.
  • Create codebehinds for Blazor components with the 'partial', 'ComponentBase', and 'using' automatically.
  • Display unique icons for unique folders. Example: "wwwroot" is a globe, and "Properties" is a settings gear.
  • Context Menu contains: Copy, Cut, Rename, Paste, Delete, "New Empty File", "New Templated File", and "New Directory".
  • For .NET Solutions the Context Menu also gets: "Add New C# Project", and "Add Existing C# Project"
  • For C# Projects the Context Menu also gets: "Add Project Reference", "Set As Startup Project", and "Remove (no files are deleted)"
  • Nesting of 'codebehind' like files. So nesting "MyComponent.razor.cs" behind "MyComponent.razor".

Input File Dialog:

inputFileDialogGif

  • Traverse the file system in order to select a file. This file must satisfy a predicate which is defined by the requester. So I can request for a C# Project and the user sees an input file dialog which asks the user to pick a C# Project.

NuGet Package Manager

nugetPackageManagerGif

  • Query "azuresearch-usnc.nuget.org/"
  • Pick the Project one wishes to add the NuGet Package reference to.
  • Option for "Include Prerelease"
  • List out the results of the HTTP request.
  • Allow for picking of the version number foreach of the results individually.
  • Button to add the NuGet Package at the selected version to the chosen Project.
  • The gif for this will be the gif at the start of this file where I showcase its usage as to decrease how large this README is.

Settings

settingsGif

  • Application Settings
    • Font-Size
    • Font-Family
    • Icon-Size
    • Theme
  • Text Editor Settings
    • Font-Size
    • Font-Family
    • Cursor-Width
    • Show Newlines
    • Use Monospace Optimizations (you should not turn off monospace optimizations because the non-monospace logic is currently very unoptimized as of 2023-08-16)
    • Show Whitespace
    • Theme
    • Keymap (Default, or Vim)

Why Am I Making this IDE?

References I find useful:

Cloning and locally running the repo

Luthetus.Ide has references to other projects of mine.

I wanted to avoid git-submodules, as I wonder if they would make things more complicated or not. I want anyone to be able to clone and run this repository, without needing knowledge of submodules.

Therefore, to run this repository one must clone this repo itself, and a few of my other repositories of which Luthetus.Ide references.

Preferably the main branch would use the NuGet Packages of the projects which are referenced. I hope to make this change in the future.

Clone the following repos into the same folder:

Possible errors with this 'scuffed' approach I have at the moment are:

  • Due to me not using submodules, the parent repository (Luthetus.Ide) does not track the commit which was being used by a child-repository (ex: Luthetus.TextEditor). I intend to keep the 'main' branches in sync, but I want to acknowledge possible errors. If there are others who wish to contribute to the code I'll make submodules a number one priority. As of right now, I'm the only developer on this so the unorganized nature of my approach is working, and effective for rapid changes. As the project grows, things would then need to be better organized.
  • The C# projects use file paths to resolve project references. The error here would be that the file paths do not match. Open the C# project in a text editor, and fix the file paths.
  • The .NET Solutions use file paths to include C# projects in a solution. The error here would be that the file paths do not match. Open the .NET Solution in a text editor, and fix the file paths.

My Youtube Videos

You may be interested in visiting my youtube channel. I make videos about this repository there.

About

License:MIT License


Languages

Language:C# 86.1%Language:HTML 11.0%Language:CSS 2.8%Language:JavaScript 0.2%