GithubHelp home page GithubHelp logo

intellij_nvda_addon's Introduction

IntelliJ_NVDA_Addon

Addon for NVDA that adds support for using IntelliJ. Current features are:

  • when caret moves to different line, the line at the new position is read out
  • when selection changes it is read out
  • when the status bar text has changed, NVDA beeps and speaks it
    • this includes reading the error description if the caret landed on one
    • configurable in settings
  • command to read status bar (NVDA + I)

How to install

  1. Download latest release or build by running scons
  2. install like a normal addon by opening the generated addon file with NVDA (should open with NVDA by default)

Tips for using IntelliJ

Checking errors/warnings

When focused inside a file editor:

  • F2/ shift + F2 : go to next/previous error or warning

When editor cursor is on error/warning:

  • NVDA + I: Quickly read error description displayed in status bar
  • ctrl + F1: open message box with more detailed error description
  • alt + enter: open list of quick actions

Navigating

  • ctrl + tab/ ctrl + shift + tab: switch between editors and views
  • alt + number: move to coresponding numbered view
  • F12: go to last non-editor view inside editor:
  • alt + up arrow/ alt + down arrow: jump to previous/next class, field, or method declaration
  • ctrl + {/ ctrl + }: GO TO PREVIOUS/NEXT MATCHING BRACE
  • ctrl + B: go to declaration
  • ctrl + shift + B: go to type declaration
  • ctrl + G: go to line
  • ctrl + N: go to class
  • shift, shift: "finad anything" dialogue

VCS

  • ctrl + K: make commit
  • ctrl + shift + K: push
  • ctrl + alt + Z: revert

Misc.

  • ctrl + shift + A: search for action
  • ctrl + alt + L: format code
  • alt + F7: find usages
  • alt + shift + F9: open run dialogue (note: if editor caret is on unit test, this will also autogenerate a run configuration for running that specific test case)

Changelog

Version 1.3.2

  • compatible with NVDA version 2023.1 and beyond

Version 1.3.1

  • fixed the status bar sometimes being read while not in IntelliJ

Version 1.3.0

  • added feature for automatically reading errors and other status bar changes (thanks to Thiago @thgcode for the contribution!)
  • reading status bar with NVDA + I is much faster
  • compatible with NVDA 2022+

intellij_nvda_addon's People

Contributors

danieldamacena-ma avatar samkacer avatar thgcode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

intellij_nvda_addon's Issues

Change in selection should be automatically announced

When selection changes, using for example ctrl + W, the change in selection isnt announced. In such case, it should be so that the user doesn't have to press ctrl + shift + up arrow each time to find out what the new selection is.

command for reading status bar

there should be a shortcut for reading the status bar as it contains useful info like error description when on erroneous line of code.

Problems with beepsand automatic reading of errors

While working on #12, I noticed that the features for beeping on status bar changes and automatically reading status bar when it changes doesn't seem to work correctly anymore. I have all these features turned off in my day to day, for personal preference, so I only just noticed now.

When "Beep when status bar changes" is checked, when the caret is on an error that produces a status message in IntelliJ, then the addon will beep continuously.

"Beep when status bar is cleared", "Automatically read status bar changes", and other options seem to have no effect.

@thgcode Do you still use IntelliJ with the addon and with any of these features turned on? If so, have you noticed any similar problems?

For reference, I tested using NVDA 2022.4 and IntelliJ communit edition 2022.1 and 2023.3.2

I suspect this could be affected by the watcher thread as I get these messages multiple times in the NVDA log:

Error on watcher thread: C++ assertion "wxThread::IsMain()" failed at ..\..\src\common\timerimpl.cpp(57) in wxTimerImpl::Start(): timer can only be started from the main thread

add missing gestures for caret_moveByLine and selection change

these gestures werent added for moveByLine and selection change

Gestures for caret moveByLine:

  • Select next occurrence Alt + J
  • Comment /uncomment with line comment Ctrl + /
  • Navigate to last edit location Ctrl + Shift + Backspace
  • Go to super-method/ super-class Ctrl + U

Gestures for selection change:

  • Unselect occurrence Alt + Shift + J
  • Select till code block end / start Ctrl + Shift + ] / [

fix list items not being labelled

problem is when getting a lot of different lists, the items arent labelled, i.e. name = "". however their first child contains the label, so it requires to nav to first child in order to read the contents. instead override list item class to have name set to name of first child.

[Question/Discusion]: support JetBrains Rider

Hey,
I am using JetBrains Rider for my work. I modified your AppModule for Rider and add some new improvements, that works for the Rider IDE.
I don't know, whether this improvements also works in IntelliJ and other JetBrains products.
What should we do?
Should we try to integrate this changes in your addon and rename it like "JetBrains Improvements"?
Or Should I publish my version for Rider?

This Issue is more a discusion or question, because I want to respect your work and my code is very inspered of your AppModule.
What is your opignon?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.