Skip to content

Code Compass 0.4.0

Choose a tag to compare

@github-actions github-actions released this 08 Oct 03:41
· 3 commits to main since this release
e7c986b

The first public release. Coding in Notepad now works much more like a code editor such as VS Code.

🎉 New: editing in Windows 10 Notepad

  • Automatic indentation: Enter keeps the indentation, adds a level after an opening bracket (or : in Python) and goes back a level after return, pass, break, continue or raise in Python. Enter between {} puts the closing bracket on its own line. A closing bracket typed first on a line lines up with its opening bracket.
  • Tab and shift+Tab indent and outdent the selected lines; shift+Tab alone outdents the caret's line.
  • control+/ comments or uncomments lines.
  • control+space completes the word at the caret with names from the file and the language's keywords, one suggestion at a time, spoken with its place ("currentUser, 1 of 3"). control+shift+space reads the parameters of the function you are calling.
  • control+shift+K deletes lines, control+shift+up and down arrow move them, control+shift+D duplicates them.
  • F2 renames a name everywhere in the file, outside comments and strings, in one step that control+Z undoes.
  • Closing brackets and quotes can be added automatically (off by default).
  • Text is changed directly in Notepad, without the clipboard or simulated typing.

🎉 New: moving around and finding problems

  • Problems: syntax errors in Python and JSON files are found without running anything, along with unbalanced brackets. F8 and shift+F8 go to the next and previous problem, control+shift+M lists them, a sound marks lines with a problem, and control+S reports them after saving.
  • Run Python with control+F5: the file is saved and run in a Command Prompt window, where it can ask for input. If it stops on an error, Code Compass tells you the line and F8 goes there. control+` opens a Command Prompt in the file's folder.
  • Explorer (control+shift+E): the project's files and folders as a tree. Open files, and create, rename and delete (to the Recycle Bin) files and folders.
  • Command palette (control+shift+P): every command with its keys; type to filter.
  • F12 goes to the declaration of the name at the caret; shift+F12 lists every line that uses it.
  • The current function is announced when the caret moves into another one, like VS Code's breadcrumbs.
  • TODO notes: NVDA+shift+K then shift+T lists TODO, FIXME and similar notes in comments.
  • Bookmarks: control+alt+K marks a line, control+alt+L and control+alt+J go to the next and previous one, and NVDA+shift+K then shift+B lists them. A short note plays on bookmarked lines. Bookmarks are kept per file across NVDA restarts and stay on their line when lines are added or removed above it.
  • Going back: control+alt+backspace returns to where the caret was before a jump (F12, F8, bookmarks, lists, control+G), control+alt+shift+backspace goes forward again.
  • control+G (Notepad's Go To) now says where you landed, such as "line 40, in function load".
  • control+S says "Saved, no problems" when the check finds nothing.
  • Visual Studio Code's sounds for lines with an error, a warning or a bookmark, saving, program runs and renaming (beeps remain as an option).
  • Files changed on disk: when another program changes the open file, Notepad reloads it on your return (or, with unsaved changes, tells you), and says what changed. NVDA+shift+K then R reloads at any time.
  • Problems while typing: a second after you stop typing, a new problem plays the error sound, and can be read too.
  • Python is found through Windows' list of installed Pythons (the newest one is used), so running works even when NVDA started without your PATH, for example from the sign-in screen. The Command Prompt from control+` gets your current PATH too.
  • New problems: Python lines indented with tabs where the file uses spaces (or mixing both), and functions or classes declared twice in Python and JavaScript. A function declared inside a function of the same name is listed as a warning.
  • Where am I and family say how many lines a function or class has, and a finished program says how long it ran.
  • control+shift+space also works with the caret on the function's name or its parentheses, and leaves self out for Python methods.
  • Backspace right after an opening bracket that auto-close completed removes both.

🛠️ Fixed

  • Finding a declaration's body is much more reliable: functions with parameters on several lines, generic types such as Component<Props>, Rust where clauses, throws or extends on the next line, functions passed as arguments (React forwardRef, Express, mocha), bodies wrapped in parentheses, and declarations without a body all work.
  • Decorators, annotations and attributes (@dataclass, @Override, [HttpGet], #[derive], template<>) belong to the declaration below them, also with a comment or blank line in between.
  • A declaration after the end of a class is no longer counted as part of it, and an unclosed bracket while typing no longer nests every later function inside the one before it.
  • A Python string with lines at column 0 no longer ends its function early.
  • Snippets: Notepad gets snippets without the clipboard; files saved as ANSI or UTF-16 in Notepad can be inserted; names Windows reserves (such as "nul") and hidden files are handled; the snippets dialog no longer fails on a file that cannot be read.
  • Messages say "1 problem" and "Selected 1 line" instead of plural forms.
  • Names inside Python f-strings, JavaScript template literals and Swift interpolation count for rename, uses (shift+F12) and completion.
  • A half-typed f-string field, a JavaScript regex holding a quote or backtick, and Swift raw strings (#"..."#) no longer hide the rest of the file from the outline and bracket checks.
  • The outline also finds one-line methods, methods with an annotation on the same line (@Override public String toString() {), Go types and generic functions, Rust impl<T> ... for Type, generic C# methods and Kotlin extension functions. A parameter named record or typed object no longer turns calls into functions.
  • Single-line fields in the editor's own dialogs (Save As, Find) keep their keys, such as alt+up arrow.

SHA256 Checksum:

789c2ce85da055de6f5c4ca6bb961e4cc615d6e386ddff27343de83efdef9865 codeCompass-0.4.0.nvda-addon