Implicit dependencies should have nothing to do with it. From your screenshot, though, it appears that the Move extension is not enabled at all. Are you sure you re-enabled it after the update? The reason I think that you only have syntax highlighting enabled only is that I don’t see any warnings/errors displayed which you should have (e.g., list. is incomplete and should be underlined by red squiggly, item is unused and should be reported as such with yellow squiggly, etc.). This is how it looks in my VSCode instance running Move 1.0.18 (I am assuming that TodoList is a struct and you are referring to accessing its fields)
Let me paste full code (which I took from move-book).
module todo_list::todo_list;
use std::string::String;
public struct TodoList has key, store {
id: UID,
items: vector<String>,
}
public fun new(ctx: &mut TxContext): TodoList {
let list = TodoList {
id: object::new(ctx),
items: vector[],
};
list
}
public fun add(list: &mut TodoList, item: String) {
list.items.push_back(item);
}
Thank you for the detailed repro instructions! Previously, I could not see what’s on the second line of the add function as it was obstructed by the auto-completion menu.
Indeed, intellisense is not working properly here for me either. However it’s an artifact of a more general issue rather than a simple bug. When auto-completing, you typically operate in a context of a compiler error (as, for example, list. is not a valid Move expression, at least not yet, and the compiler will treat it as an error). At the same time, in order to provide some meaningful auto-completion content, the compiler needs to know at least partially what an expression such as list. is or is going to be - in particular it needs to know its type. So, the compiler is trying to make sense of list. but there is also code following it that may affect is meaning. In the particular example you provided, the compiler sees something like this (line breaks do not matter to it): list.list.items.push_back(item) and it’s very confused about the initial list.list as it looks like a valid expression but is not. If you try a function with just the list. (see below), however, the compiler is smart enough to figure out that list.} does not make much sense and can take a more meaningful action at the dot (an intellisense will work in this case):
public fun add(list: &mut TodoList, item: String) {
list.
}
Long story short, I will look into this particular case to see if I can finesse it so that intellisense produces a more meaningful auto-completion for this, but there always be cases when it does not…
Me not seeing them in your screenshot makes me worried that the extension is not enabled or is not working properly. Can you see on-hover info for well-defined constructs, such as add function?
Perhaps you could attach the content of Move tab in View->Output window? It should contain something like this (compilation failure at the later stage is expected due to incomplete expression):
I am back, tried with move extension 1.0.20, and it seems it is fixed when using WSL on windows. Also tried in local window, but intellisense doesn’t work there. But I can continue development in WSL. Thanks for your support.
I am glad it works using WSL, Not sure what “local window” means, though, and I would be grateful if you could explain. I am keen to fix all problems, particularly if you can continue providing repro instructions