Skip to content

AdamJosephMather/CodeWizard2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

379 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodeWizard2

A rewrite of CodeWizard. CodeWizard2 is probably not a useful project to anybody besides myself.
However it is much faster than some IDEs, particularly on laptops (maintaining 60fps until it transitions to 'sleep' mode). And CodeWizard maintains under 100 Mb ram while running. Usually idles around 60-70 Mb (with several files open).

What's Special?

  1. CodeWizard2 now has custom rendering without a UI framework like Qt. CodeWizard2 uses OpenGL, and GLFW.
  2. CodeWizard2 has a custom written remake of the TextMate highlighting engine (with several known issues) that works pretty well.
  3. It contains a custom LSP implementation originally written for CodeWizard.
  4. CodeWizard2 is not for the average person, there are a lot of undocumented features and key bindings. Which I am not changing right now.
  5. We use a 'panel' such that you can have whatever arrangement of elements you want.

Screenshot(s)

Ever seen Asteroids inside a code editor, with no plugins? I didn't think so.

image image image image image

Widgets

CodeWizard2 uses widgets, of which we have:

  1. Editor View (code, images)
  2. File Tree
  3. Settings Menu
  4. File Compare (compairs two files)
  5. AI Chat
  6. LSP Debug Window
  7. Terminal
  8. Math Window
  9. Asteroids
  10. Graph Window

Quick Note

CodeWizard2 is only available on Windows. There is a modal option (which I quite enjoy but doesn't match any other editors) available in the settings.

Important Key Bindings:

  1. Ctrl+Shift+P focus the command palette.
  2. Ctrl+Shift+O change project folder.
  3. Ctrl+O open file.
  4. Ctrl+Shift+U run project search through command palette.
  5. Ctrl+> or Ctrl+< to jump brackets.
  6. F5 run programs

Out Of The Box

Out of the box, CodeWizard comes with a beautiful UI, Cascadia Code font, TextMate files for a bunch of languages, and pypls. Pypls is my LSP originally designed for python, but does pretty well in general.

To install:

  1. Download and run installer (in the releases section)
  2. To add new languages for CodeWizard, open the file C:\Users\<username>\AppData\Local\CodeWizard\languages.json (an example file is below), or inside of CodeWizard's command palette type ":Open `languages.json` file" and it will open it in CodeWizard (remember to restart CodeWizard after making changes).
  3. For every language, you will likely want a TextMate file which you can point to in the languages.json (note %INSTALL_DIR% will be replaced with C:\Users\<username>\AppData\Local\CodeWizard) - the TextMate language files can be found here: https://github.com/microsoft/vscode/tree/main/extensions (look for .tmLanguage.json)
  4. Project specific settings can be created via opening the settings panel and pressing 'Project Specific' which will create a json file and give you the path. This can be used to set specific LSPs and the project build command.

Example languages.json

{
"languages": [
	{
		"name": "c++",
		"line_comment": "//",
		"textmatefile": "%INSTALL_DIR%\\highlightingfiles\\cpp.tmLanguage.json",
		"filetypes": ["cpp", "h", "hpp", "c"],
		"lsp_command": "C:\\Users\\adamj\\Documents\\LanguageServers\\clangd_19.1.2\\bin\\clangd.exe",
		"build_command": "cd /d %FILE_LOCATION% && call \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat\" x64 && cl.exe %FILE_NAME% && %FILE_NAME_NO_EXT%.exe"
	},
	{
		"name": "python",
		"line_comment": "#",
		"textmatefile": "%INSTALL_DIR%\\highlightingfiles\\MagicPython.tmLanguage.json",
		"filetypes": ["py", "pyw"],
		"lsp_command": "jedi-language-server",
		"build_command": "cd /d %FILE_LOCATION% && python %FILE_NAME%"
	},
	{
		"name": "go",
		"line_comment": "//",
		"textmatefile": "%INSTALL_DIR%\\highlightingfiles\\go.tmLanguage.json",
		"filetypes": ["go"],
		"lsp_command": "gopls",
		"build_command": "cd /d %FILE_LOCATION% && go run ."
	},
	{
		"name": "r",
		"line_comment": "#",
		"textmatefile": "%INSTALL_DIR%\\highlightingfiles\\r.tmLanguage.json",
		"filetypes": ["R", "R~"],
		"lsp_command": "%INSTALL_DIR%\\pypls.exe",
		"build_command": ""
	}
]
}

About

A rewritten CodeWizard (still c++ but without Qt). Oh and yes - it's better than CodeShizard.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors