- Fix 'Slow operations are prohibited on EDT' error after project opening
- Fix mismatch of indexes and psi after
v up
command - Change Snake case implementation to covert all caps as single word
2024.3.1 - 2024-11-14
- Support for intellij platform 2024.3
- Fix circular dependency error
- Introduce new implements keyword for interface declarations
- Keywords can now be used in enums
- Around 60 deprecation fixes
- Support for IntelliJ Platform 2024.2
- Faster indexing (and smaller index) by filtering out test files from vlib
- Launch search for vlang installations in coroutine
- Support for static method syntax
- it will not be highlighted as an error
- no completions yet
- update Gradle to 8.9
- move to gradle intellij platform plugin version 2.0.1
- Support for IntelliJ Platform 2024.1
- Support for new attribute syntax (like
@[inline]
). Old syntax is still supported.
0.0.1-beta.4 - 17.04.2023
- Added initial debugger expression evaluation
- Added highlighting elements in doc comments
- Added
...
in Quick Documentation for vararg parameters - Added warning for enum without fields
- Added support for new
index
variable inside array initialization and deprecatedit
variable (with quick fix) - Added documentation for
$option
,$int
etc. - Add notification about new version
- Now rename of element will also rename it name in doc comment
- Don't highlight parameters and receivers as unused in functions with
$tmpl
call - Updated ORM handling for latest V changes
- Allow
@name
in module declaration - Now, if the module name is a keyword, then plugin create a file with a name starting with "@"
- Check
v fmt
checkbox in commit dialog by default - Place code vision on right side
- Don't show generated
defer
variables in debugger
- Pretty printers for array and structs in some cases
- Handling project with v.mod in sub folders
- Naming convention inspection now checks variable names as well (thank you @saturn4er!)
- In debugger, now
NULL
displays asnil
- Values (numbers, strings, pointers) now highlight in debugger
- Function types now displayed in more readable way in debugger
- Enums with alignment now also displayed in debugger in correct way
- On Windows primitive types also displayed as
u32
/i32
/etc. instead ofint
orunsigned
in debugger - Support for maps and arrays with pointer type values in debugger
- Don't step into some generated functions when debug
- Add name and address to pretty printer for interfaces in debugger
Fill all fields...
now uses first enum value as default value- Several exceptions in different cases
- Missing Function name quickfix for empty comment
- False positive for Missing Function name inspection with multiline comment
- Type inference indexing of map pass by reference
- Build events parser
- Struct init parsing inside
for
without last statement - Module name inspection now not warn about root module name
- Don't show completion variants when type literal value like
100
- Don't warn about count arguments for unknown C methods/functions
- Bug with
str()
call in debugger forstrings.Builder
- Case for compile-time constants like
$Option
or$Int
0.0.1-beta.3-231-EAP - 06.03.2023
- Added struct fields in Quick Documentation
- Added fields and methods to Quick Documentation for interfaces
- Added type methods in Quick Documentation (works only for declarations)
- Added highlighting for
break
andcontinue
insidefor
andselect
If thefor
is marked with a label, then the label that is specified in the currentcontinue
orbreak
will be highlighted - Added documentation for compile-time
fields
field - Added documentation for
cap
field inchan
init - Added call count mismatch inspection
- Added initial name generation when refactor or rename
- Added
fori
postfix template - Added support for
_likely_
/_unlikely_
with documentation - Added type inference for
10 << 100
- Added completion for plain test functions
- Added renaming of all receivers
- Added Receiver names inspection
- receiver name is generic (self, me, this)
- receiver names are different
- New checkers:
continue
andbreak
outsidefor
- default value for interface field is not allowed
- recursive struct is not allowed
err
is always none when expression is not Result- cannot propagate result of function with non-Result and non-Option type
- cannot unwrap non-Result and non-Option type
- use
!
to propagate Result type and?
to propagate Option type - expression for
or
block has non-Result and non-Option type - send to non-channel type
- cannot use
for i in mp
for maps - interface types not allowed inside sum type
- captured list is empty
- captured variable has the same name as one of anon function parameter
- plugin parse
*Foo
as a pointer type and give an error that the real syntax is&Foo
- duplicate embedded struct
- struct embedding is not first in field list
- duplicate modifier in list
- duplicate modifiers group in struct
- mismatch count values in assignments
- When typing
}
for string interpolation, no character is entered if the next character is already}
- For maps,
for
postfix template now generatesfor key, value in mp
instead offor key in mp
a << 100
now parsed as AppendExpression- ReassignImmutableSymbol inspection now works for
a << 100
- ReassignImmutableSymbol inspection now check captured variables
- ReassignImmutableSymbol inspection now check index expressions
- Improved not captured variable inspection
- added support for receivers
- added support for deep nested anon functions
- Improved debugger
- added variable with all captured variables in current anon function
- added pretty printer for
strings.Builder
- show values for array of pointers
- show custom
str()
method result right after name - show aliases for string as string
- improved handling for maps
- improved names in call stack
- don't show
mr_*
variables - don't show
thread__*
andarg__*
variables
- Improved modifier list handling inside structs
- unindent modifiers list in structs when type
:
after it - improved completion for modifiers in struct
- warn about duplicate modifier in list
- warn about duplicate modifiers group in struct
- unindent modifiers list in structs when type
continue
andbreak
inside loops higher in the autocomplete list- Improved completion for the top level, don't show expressions if there is a function, structure, etc. next
- Improved postfix completion, added
unsafe
andnot
postfix templates and improvednil
completion in safe context - Improved
chan
init fields autocomplete
- Fixed live templates
- Fixed type inference for
for
over aliased array or map type - Fixed highlighting of primitive types
- Fixed trailing struct resolving for pointer types
- Fixed resolving for compile-time
fields
field - Fixed
str()
resolving - Fixed completion for structs/types from unimported modules
- Fixed Implement Interface action
- when generating methods to implement an interface, do not use fqn, but add imports and use short names
- when regenerating interface methods, be aware that
mut x Foo
may also implement an interface method that is not mutable and same for fields - fixed generation of types for fields
- Fixed
err
variable resolving inside a nested if inside an if guard in anelse
block - Fixed enum field resolving for struct init with
...var
- Fixed
err
resolving inside call expr withor
block - Fixed
it
resolving if it used in inner if expression
- Don't show
err
hint inside else oror
block when no Result type - Don't show hints for some obvious cases (
a := Foo{}
,b := true
,c := "hello"
) - Don't highlight
_
as unused receiver - Don't show
_
in autocompletion - Don't warn about access to global variable
- Don't warn about unhandled option types
- Don't auto import main module in any case
- Don't add parentheses in function completion when the context type is a function
0.0.1-beta.2 - 06.02.2023
- Added caching for
resolve()
for types, it should speed up resolving for big projects - Added auto import for module when complete global variable name
- Added context completion for enum fields
- Added
dump()
postfix template - Added handling of compile time reflection
- Added definitions of constants like linux or android
- Added completion for
$if
,$else
,$for
- Added "V fmt" checkbox on commit
- Added initial deprecation processing
- Added initial smartcasts support
- Added new "forc" template for
$for field in T.fields
- Improved shared type handling
- Improved unsafe context detection
- Improved compile time handling
- Improved live templates
- Extended VariableNotCaptured inspection for parameters
- Highlighting when indexing in progress
- Now plugin don't process stub and test files when search for supers or inheritors
- Fixed resolving for methods for same types in different folders with equal module name
- Fixed parsing of
foo.bar
inside SQL - Fixed type inference for globals without value
- Fixed visibility of global variables in other modules
- Fixed struct completion for aliased types
- Fixed false positive in assignments for RawOptionOrResultTypeUsed inspection
- Fixed some bugs in ReassignImmutableSymbol inspection
- Fixed cast exception
- Fixed broken Java debugging with installed plugin
- Increased v fmt timeout to 5 seconds to prevent exception on first run
- Don't show
void
type in completion and quick doc - Don't show
private
keyword in quick documentation - Support 2023.1 EAP