Skip to content

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

AdamJosephMather/CodeWizard2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 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)

image With multiple panels open image Just to show off a little image No, there's no limit to the number or configuration of panels.

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

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 folder.
  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 languages for CodeWizard, open the file C:\Users\<username>\AppData\Local\CodeWizard\languages.json (an example file is below)
  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

No packages published