You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a good problem to have ;). I'd like to gather some cases where intellisense should perhaps not trigger, or trigger with less information, partially by comparing against e.g. C#'s intellisense. I'm hopeful many of these can be solved with simple lexer checks. My partial list of differences I've discovered so far follows:
Differences
Rust
C#
Notes
let f
var f
Intellisense shouldn't try to autocomplete other identifiers when we're trying to define a new identifiers, although perhaps other keywords like mut would still be sane?
pub fn f
public static void f
Ditto
func(
func(
Intellisense shouldn't try to "help" us until we start typing a new identifier (signature help, on the other hand, is appropriate)
let a = (
var a = (
Ditto, minus the signature help.
foo.
foo.
Intellisense shouldn't display keywords when only identifiers will do
Equivalent
Rust
C#
Notes
let◄◄◄
var◄◄◄
Both seem to continue to display intellisense after typing an identifier occured, to my suprise.
Work list
Don't autocomplete new identifiers
Don't autocomplete newly opened argument lists (showing signature help instead is OK)
Don't autocomplete newly opened parenthetical groups (nor trigger new signature help)
Intellisense docs should display "summary", but not arguments, exceptions, etc. Rustdoc equivalent might be the first summary before any # ... headings.
Do autocomplete after scoping operators (., ::)
Signature help docs should also display exceptions, and the current argument. Rustdoc equivalent might be the addition of parsed # Arguments sections, and # Panics or # Failure sections.
Generic types and methods should display <>s in the intellisense list, even if no <>s are autocompleted.
The text was updated successfully, but these errors were encountered:
Edit: some of this was just from bugs: #293
This is a good problem to have ;). I'd like to gather some cases where intellisense should perhaps not trigger, or trigger with less information, partially by comparing against e.g. C#'s intellisense. I'm hopeful many of these can be solved with simple lexer checks. My partial list of differences I've discovered so far follows:
Differences
let f
var f
mut
would still be sane?pub fn f
public static void f
func(
func(
let a = (
var a = (
foo.
foo.
Equivalent
let◄◄◄
var◄◄◄
Work list
# ...
headings..
,::
)# Arguments
sections, and# Panics
or# Failure
sections.The text was updated successfully, but these errors were encountered: