When a document is changed, the editor highlighter restarts the lexer
at the last point where it was in the default state. Previously, if
a matching backtick was deleted and then reinserted, the lexer was
resumed just before the reinsertion point, and as the result the two
backticks were parsed not as two delimiters of a single token but as
two BAD_CHARACTER tokens. With this change, all tokens after the
unmatched backtick will be in a non-default state, so the lexer will
restart at the first backtick and will correctly see the two backticks
as a single token.
#KT-9091 Fixed
To avoid showing a large list, the previous logic returned only the
element directly at caret and other elements with the same start
offset. When selection is present, the platform logic looks only at
elements which have a larger range than the selection, so our elements
could be completely filtered out. Now we look at the selection
ourselves and adjust the returned elements accordingly.
#KT-16423 Fixed
If an expression returns something that has invoke() defined on it,
this entire expression can act as a callee. If we highlight it, this
will suppress more useful highlighting such as string literals.
#KT-16159 Fixed
Intention is not registered now; inspection is enabled by default now,
but has highlight level of "No highlighting"
Inspection does not depend on text length now
So #KT-14335 Fixed
* KT-7848 Initial implementation of literal copy/paste processor for Kotlin
* KT-7848: Tests
* KT-7848: fix issues caught in unit tests with recognizing invalid template entries
* KT-7848: check for KtFile
* KT-7848: fix capitalization for test data file names
* KT-7848: Initial changes according as per review
* KT-7848: TemplateTokenSequence tests
* KT-7848: fix off by one error caught in test
* KT-7848: Reformat with keep empty lines in code -> 0
* KT-7848 Initial implementation of literal copy/paste processor for Kotlin
* KT-7847: Tests
* KT-7847: fix issues caught in unit tests with recognizing invalid template entries
* KT-7847: check for KtFile
* KT-7847: fix capitalization for test data file names
* KT-7847: Initial changes according as per review
reduce number of cases when changes are reported from script dependencies
provider, that causing rootsChanged event, in particular empty dependencies
are filtered out now
Should reduce IDEA startup delays.
filter vfs changes events to take only non-infrastructure files from actual
project
also drop unnecessary readAction during internal caches update
Should reduce IDEA startup delays.
Last declaration in block is resolved in DEPENDENT mode because it has
influence on return type and therefore fake call for destructuring declaration
wasn't completed (see `getBlockReturnedTypeWithWritableScope`)
Now we resolve fake call for destructuring declaration in INDEPENDENT
mode as it doesn't have effect on return type
#KT-15480 Fixed
ScopeTowerProcessors.kt contains a few code snippets
that look like `collectCandidates(...).filter { ... }.map { ... }`.
Filter argument is always side-effect free, so it is safe
to merge `filter` and `map` calls into one for-loop.
The change also makes sense, because modified functions are quite hot.
For example `NoExplicitReceiverScopeTowerProcessor.simpleProcess`
produces 11,392,768 ArrayList instances (~1.08% of all objects)
when compiling the compiler according to aprof at the moment of writing.
On my machine the change improves compilation speed of the compiler up to 5%.