## Description
This PR fixes dot-completion for macros:
- previously when inserting method name at the callsite we would not
include the `!` at the end of macro function name which could be
annoying
- macro parameter names (starting with `$`) did not work well with LSP
snippet syntax resulting in macro parameter names not being displayed as
part of the inserted snippet
The PR also enhances support for macro dot-completion by expanding
lambda parameters into their own snippets with placeholders for all
parameters and the return value.


Finally, this PR extends IDE testing framework with dot-completion tests
and unifies test specifications to use 1-based (instead of 0-based) line
numbers in the input to simplify addition of new tests.
## Test plan
All new and existing tests must pass.