Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More fixes for POC rename symbol #2

Open
wants to merge 127 commits into
base: poc_rename_symbol
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
3e531b9
Fix hover bug (#674)
gofenix Feb 11, 2022
c5fd13f
Add support for variable expansion of evaluate results (#672)
lukaszsamson Feb 13, 2022
58f07d8
Add support for pause and terminateThread requests in debugger (#675)
lukaszsamson Feb 13, 2022
6057d36
Fix numerous cases of incorrect utf16 positions returned and passed i…
lukaszsamson Feb 19, 2022
ea250e2
Make debugger conform to DAP 1.51 continue/stepin/stepout/stepover (#…
lukaszsamson Feb 19, 2022
a0e60f1
Add support for hover and clipboard eval in debugger (#680)
lukaszsamson Feb 21, 2022
ba6252f
Add support for completions in debugger (#679)
lukaszsamson Feb 21, 2022
99ab6e9
Add debugger variable scopes with messages and process info (#681)
lukaszsamson Mar 6, 2022
7f37d59
Suggest an appropriate module name with the 'defmodule' snippet (#684)
bottlenecked Apr 19, 2022
1e38db4
improvements to document symbols provider
lukaszsamson May 18, 2022
71fb6fc
bump otp on ci
lukaszsamson May 18, 2022
d57b41f
unlock otp versions
lukaszsamson May 18, 2022
c1a9a5f
Misc mkdocs fixes (#692)
timothyvanderaerden May 18, 2022
ae40661
do not consider changes in .elixir-ls and _build dirs when deciding i…
lukaszsamson May 18, 2022
ff130f3
Fix many cases of invalid Mix.Compiler.Diagnostic position handling
lukaszsamson May 25, 2022
5af6a3f
fix crash introduced in ff130f3325715e5fcf6a27a497010adebe8ddca8
lukaszsamson May 30, 2022
0da7623
add support for OPT 25 dialyzer opts
lukaszsamson May 30, 2022
cef11ab
bump elixir sense
lukaszsamson May 31, 2022
ca81cff
add OTP 25 to test matrix
lukaszsamson May 31, 2022
d87d9be
bump github actions
lukaszsamson May 31, 2022
85cf3cc
bump version
lukaszsamson Jun 1, 2022
ec1b31c
fix md formatting
lukaszsamson Jun 1, 2022
c100485
Build cleanup (#698)
lukaszsamson Jun 2, 2022
27443d4
make function private
lukaszsamson Jun 2, 2022
37a15ed
update changelog (#697)
lukaszsamson Jun 6, 2022
e3278b8
wip
lukaszsamson Jun 6, 2022
539ba88
update changelog
lukaszsamson Jun 10, 2022
60e2df2
run formatter
lukaszsamson Jun 11, 2022
d59b939
When possible return non empty ranges and selection rages in document…
lukaszsamson Jun 11, 2022
d226e81
Merge branch 'document-symbol-location'
lukaszsamson Jun 11, 2022
05656fc
Revert "make function private"
lukaszsamson Jun 11, 2022
6bcb346
fix tests on elixir < 1.13
lukaszsamson Jun 11, 2022
3bd305b
fix tests on elixir < 1.13
lukaszsamson Jun 11, 2022
a5fd8ec
do not rely on compile OTP version dialyzer internal record (#703)
lukaszsamson Jun 19, 2022
2db8acc
improve selection ranges in document symbols
lukaszsamson Jun 20, 2022
41ad1f7
Add support for mix format plugins (#660) (#690)
DaliborHorinek Jun 21, 2022
5ef73a5
return info about pids, ports and funs in debugger evaluator
lukaszsamson Jun 26, 2022
ea543d4
return detail in debugger completions
lukaszsamson Jun 26, 2022
026b10a
bump elixir_sense
lukaszsamson Jun 26, 2022
78c9516
missing commit
lukaszsamson Jun 26, 2022
42083c9
stop hex app in test fixture
lukaszsamson Jun 27, 2022
911688b
Add `nvim-lspconfig` to list of IDEs plugins (#706)
rafamadriz Jun 27, 2022
5fe75ba
Guard against invalid positions in diagnostics
lukaszsamson Jun 29, 2022
e4576de
preselect do completion to make it more preferred than defoverride
lukaszsamson Jul 5, 2022
e0e682b
Use chardata_to_string
lukaszsamson Jul 5, 2022
68fe3f7
add github actions dependabot config
lukaszsamson Jul 10, 2022
bdbfc5b
Elixir 1.14 (#716)
lukaszsamson Aug 10, 2022
9e83aa2
Bump actions/upload-artifact from 1 to 3 (#710)
dependabot[bot] Aug 13, 2022
9aebbe8
Fix import and alias module functions not showing view on hexdocs lin…
oo6 Aug 13, 2022
471cdd2
Special case handling of Phoenix 'live' dir when suggesting module na…
bottlenecked Aug 13, 2022
5e51da0
Changelog updated
lukaszsamson Aug 14, 2022
fe11910
extend release asset matrix
lukaszsamson Aug 14, 2022
e318963
A ~ is not expanded inside double quotes (#721)
slam Aug 27, 2022
caad581
add 1.14 to test matrix
lukaszsamson Sep 3, 2022
6c1833c
remove load_all_applications (#725)
lukaszsamson Sep 10, 2022
c3b73d8
Add mix clean custom command (#730)
lukaszsamson Sep 19, 2022
e95dcc5
Introduce a compilation tracer (#724)
lukaszsamson Sep 21, 2022
65e889a
Do not crash on completions in untitled: schema
lukaszsamson Sep 29, 2022
1cf22ee
allow formatting of untitled: even when project_dir is set
lukaszsamson Sep 29, 2022
a40581e
Fix crash on hover when project_dir is nil
lukaszsamson Sep 29, 2022
90752e8
set compiler options in case project left some garbage there
lukaszsamson Oct 1, 2022
dacdcdf
Do not crash when handling code lenses for untitled
lukaszsamson Oct 1, 2022
9fe8ea1
Add basic code action support (#718)
lucacervello Oct 2, 2022
8ce39f3
Fix unused warning during compile (#735)
thanabodee-c Oct 3, 2022
866601e
Suggest an appropriate module name with the 'defprotocol' snippet (#715)
oo6 Oct 3, 2022
b941421
docs: fix typos (#737)
george124816 Oct 4, 2022
036d876
Deprioretize deprecated completions
lukaszsamson Oct 6, 2022
022d59e
Improved DocumentSymbols resilience (#736)
scohen Oct 6, 2022
17ee361
Improved resiliency of `formatter_for` (#738)
scohen Oct 6, 2022
9160db5
add support for disabling automatic builds trough a config (#440)
Hanspagh Oct 6, 2022
d77087a
Moved SourceFile path operations to SourceFile.Path module (#739)
scohen Oct 7, 2022
031bd0a
Properly clean mix internal state so dep loading does not fail
lukaszsamson Oct 7, 2022
568ca11
explicitely remove tracer in tests
lukaszsamson Oct 11, 2022
67a1955
run formatter
lukaszsamson Oct 11, 2022
6fa8cb2
fix warnings
lukaszsamson Oct 11, 2022
d8642c7
Logger backend for language server and fixes for debugger (#746)
lukaszsamson Oct 12, 2022
45149aa
improve debugger test stability
lukaszsamson Oct 13, 2022
b55fece
Fixed unit tests that were broken before 1.13 (#749)
scohen Oct 15, 2022
a4bd85e
Tracer was not being called via start_supervised (#750)
scohen Oct 15, 2022
bdd5030
use helper for mix file detection
lukaszsamson Oct 14, 2022
b6acb47
rebuild project if tracing databases are not found
lukaszsamson Oct 14, 2022
6a52eb9
write tracer manifast on succesful compile
lukaszsamson Oct 16, 2022
9fa72cf
Update mix case (#754)
lukaszsamson Oct 22, 2022
0cbfed9
run static analysis on 1.14
lukaszsamson Oct 22, 2022
2d59c20
actually run dialyzer and formatter
lukaszsamson Oct 22, 2022
4b98088
Add custom command returning tests in file (#753)
lukaszsamson Oct 22, 2022
0625997
race_conditions was removed in OTP 25
lukaszsamson Oct 22, 2022
b9d7672
update elixir_sense
lukaszsamson Oct 30, 2022
a59ce3c
update vendored jason to 1.4.0
lukaszsamson Oct 30, 2022
84500ae
vendor dialyxir
lukaszsamson Oct 30, 2022
e2e239c
bump dialyxir
lukaszsamson Oct 30, 2022
91b5486
fix task name in ci
lukaszsamson Oct 30, 2022
bab629a
hipe app was removed in OTP 25
lukaszsamson Oct 30, 2022
5c94b5d
add ex_unit plt
lukaszsamson Oct 30, 2022
f9725ef
fix some dialyzer errors
lukaszsamson Oct 30, 2022
5a72388
fix dialyzer error
lukaszsamson Oct 30, 2022
8d8eb42
enable more warnings
lukaszsamson Oct 30, 2022
d3e05a6
Warn if OTP built without doc chunks
lukaszsamson Oct 30, 2022
52dae7a
remove not needed logs
lukaszsamson Oct 30, 2022
32e4c29
Warn if unable to locate elixir and OTP sources
lukaszsamson Oct 30, 2022
685c2fa
Display message and help log if unable to build PLTs
lukaszsamson Oct 31, 2022
e996a38
Add alias as additionalTextEdits (#722)
ajayvigneshk Nov 1, 2022
9e49ac1
fix build on elixir 1.11
lukaszsamson Nov 1, 2022
699a728
fix build on elixir 1.11
lukaszsamson Nov 1, 2022
75ec61e
run formatter
lukaszsamson Nov 1, 2022
72b4324
run formatter in language_server app
lukaszsamson Nov 1, 2022
2dd1e00
add Code of conduct
lukaszsamson Nov 1, 2022
badf5dc
Add components to Phoenix dirs (#757)
aptinio Nov 2, 2022
3c8a6e0
Fix test code lens when umbrella app names have the same prefix. (#759)
BlindingDark Nov 6, 2022
3145fef
bump elixir_sense
lukaszsamson Nov 6, 2022
edb2e4d
Disable elixir-sense's logging in production (#748)
scohen Nov 6, 2022
93c196f
Improve LSP consistency
lukaszsamson Nov 6, 2022
aa4dc45
Avoid rapid rebuild in test
lukaszsamson Nov 7, 2022
b27f68b
bump elixir_sense
lukaszsamson Nov 7, 2022
2d3f272
bump version
lukaszsamson Nov 7, 2022
cc85d38
update changelog
lukaszsamson Nov 7, 2022
1a1baf2
add elixir 1.14 to release matrix
lukaszsamson Nov 7, 2022
77670d5
changelog updated
lukaszsamson Nov 7, 2022
4171632
Fix rename file version & file paths
timgent Nov 10, 2022
0df0996
Fix rename issue with duplicate entries when renaming var definition
timgent Nov 10, 2022
04407d3
drop support for elixir 1.11
lukaszsamson Nov 12, 2022
2984b66
Add regression test for autocompletion of 'fn' within parentheses (#768)
vanderhoop Nov 13, 2022
42c4d30
Tests for rename prepare and fix rename prepare across multiple files
timgent Nov 13, 2022
716de9d
Merge branch 'master' into poc_rename_symbol_tg
timgent Nov 13, 2022
faf8d25
Fix rename issues following merge with master
timgent Nov 13, 2022
fab2032
Rename to only rename fn headers of correct arity
timgent Nov 15, 2022
532bf88
Simplify get_char_ident fn in rename provider
timgent Nov 15, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
60 changes: 26 additions & 34 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,35 +16,30 @@ jobs:
fail-fast: false
matrix:
include:
- elixir: 1.10.x
otp: 22.3.4.20
tests_may_fail: false
check_unused_deps: true
- elixir: 1.11.x
otp: 23.3.4.4
tests_may_fail: false
check_unused_deps: true
- elixir: 1.12.x
otp: 23.3.4.4
tests_may_fail: false
check_unused_deps: true
otp: 22.x
- elixir: 1.12.x
otp: 23.x
- elixir: 1.12.x
otp: 24.x
- elixir: 1.13.x
otp: 22.x
- elixir: 1.13.x
otp: 23.x
- elixir: 1.13.x
otp: 22.3.4.20
tests_may_fail: false
check_unused_deps: true
warnings_as_errors: false
otp: 24.x
- elixir: 1.13.x
otp: 24.1.x
tests_may_fail: false
# Needs to be false until https://github.com/elixir-lsp/elixir-ls/issues/642 is fixed
warnings_as_errors: false
check_formatted: true
check_unused_deps: true
run_dialyzer: true
otp: 25.x
- elixir: 1.14.x
otp: 23.x
- elixir: 1.14.x
otp: 24.x
- elixir: 1.14.x
otp: 25.x
env:
MIX_ENV: test
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
Expand All @@ -54,28 +49,24 @@ jobs:
mix local.hex --force
mix local.rebar --force
mix deps.get --only test
- run: mix format --check-formatted
if: matrix.check_formatted
- run: mix compile --warnings-as-errors
if: matrix.warnings_as_errors
- run: mix test || ${{ matrix.tests_may_fail }}
- run: mix test

static_analysis:
name: static analysis (Elixir ${{matrix.elixir}} | Erlang/OTP ${{matrix.otp}})
runs-on: ubuntu-latest
strategy:
matrix:
include:
- elixir: 1.13.x
otp: 24.1.x
- elixir: 1.14.x
otp: 25.x
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- name: Cache build artifacts
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: |
~/.hex
Expand All @@ -89,5 +80,6 @@ jobs:
mix deps.get
- name: Restore timestamps to prevent unnecessary recompilation
run: IFS=$'\n'; for f in $(git ls-files); do touch -d "$(git log -n 1 --pretty='%cI' -- $f)" "$f"; done
- run: mix dialyzer
if: matrix.run_dialyzer
- run: mix format --check-formatted
- run: cd apps/language_server && mix format --check-formatted
- run: mix dialyzer_vendored
8 changes: 4 additions & 4 deletions .github/workflows/docsite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ jobs:
image: squidfunk/mkdocs-material
steps:
- name: Checkout
uses: actions/checkout@v2.3.1
uses: actions/checkout@v3
- name: Build
run: mkdocs build -s
- name: Upload artifact
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v3
with:
name: site
path: site
Expand All @@ -32,9 +32,9 @@ jobs:
max-parallel: 1
steps:
- name: Checkout
uses: actions/checkout@v2.3.1
uses: actions/checkout@v3
- name: Download artifact
uses: actions/download-artifact@v1
uses: actions/download-artifact@v3
with:
name: site
path: site
Expand Down
26 changes: 19 additions & 7 deletions .github/workflows/release-asset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,26 +32,38 @@ jobs:
strategy:
matrix:
include:
- elixir-version: '1.14'
otp-version: '25.1'
- elixir-version: '1.14'
otp-version: '24.3'
- elixir-version: '1.14'
otp-version: '23.3'
- elixir-version: '1.13'
otp-version: '25.1'
- elixir-version: '1.13'
otp-version: '24.3'
- elixir-version: '1.13'
otp-version: '23.3'
- elixir-version: '1.13'
otp-version: '24.1'
otp-version: '22.3'
- elixir-version: '1.12'
otp-version: '24.3'
- elixir-version: '1.12'
otp-version: '24.1'
- elixir-version: '1.11'
otp-version: '23.3'
- elixir-version: '1.10'
- elixir-version: '1.12'
otp-version: '22.3'
default: true

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up BEAM
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ matrix.elixir-version }}
otp-version: ${{ matrix.otp-version }}

- name: Restore dependencies cache
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: deps
key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
Expand All @@ -74,7 +86,7 @@ jobs:
with:
upload_url: ${{ needs.release.outputs.upload_url }}
asset_path: ./elixir-ls.zip
asset_name: elixir-ls-${{ matrix.elixir-version }}.zip
asset_name: elixir-ls-${{ matrix.elixir-version }}-${{ matrix.otp-version }}.zip
asset_content_type: application/zip

- name: Upload Default Release Asset
Expand Down
2 changes: 1 addition & 1 deletion .release-tool-versions
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
#
# The versions selected here are the versions that are used to build a binary
# release for distribution
elixir 1.10.4-otp-22
elixir 1.12.3-otp-22
erlang 22.3.4.20
98 changes: 98 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,103 @@
### Unreleased

**Deprecations**
- Minimum version of Elixir is now 1.12.3

### v0.12.0: 7 November 2022

Improvements:

- Support for list destructuring and comprehension in `for` and `with` expressions. ElixirLS is able to provide completions for destructured list element
- Introduction of compile tracers. ElixirLS now builds a databases basing on compile tracers API available since elixir 1.10. References provider has been rewritten to support tracer database
- Code action prefixing unused variables with `_` [Luca Cervello](https://github.com/lucacervello)
- Complete now proposes not aliased modules and adds required `alias` [Ajay](https://github.com/ajayvigneshk)
- Custom command running mix clean added. Useful when server hits a compilation error
- Custom command returning tests in `.exs` file
- Better handling of Phoenix components [Aaron Tinio](https://github.com/aptinio)
- Test code lense improvements in umbrella apps [我没有抓狂](https://github.com/BlindingDark)
- Start script improved when `$XDG_CONFIG_HOME` is not set [Sahn Lam](https://github.com/slam)
- Deprecated symbols are now deprioretized in completions
- Improvements to logging
- Dialyxir is now vendored. This should avert dependency conflicts
- ElixirLS emits more helpful error messages in case of common problems
- Automatic builds can now be disabled [Hans](https://github.com/Hanspagh)
- Better module name suggested for `defprotocol` [Milo Lee](https://github.com/oo6)
- Improved LSP position handling

Fixes:

- Several crashes with `untitled:` schema URIs fixed
- Longstanding bug in dependencies reloading leading to infamous `** (Mix.Error) Can't continue due to errors on dependencies` fixed
- Fixed crash when formatting a file with syntax errors [Steve Cohen](https://github.com/scohen)
- Fixed several crashes in document symbols [Steve Cohen](https://github.com/scohen)

### v0.11.0: 14 August 2022

Improvements:

- Elixir 1.14 support
- Document symbols now return non empty selection ranges. This fixes breadcrumbs behavior in vscode
- Fixed dialyzer crash on OTP 25
- Added support for mix formatter plugins ([Dalibor Horinek](https://github.com/DaliborHorinek))
- Debugger now returns detailed info about ports, pids and function variables
- Debugger completions now return detal field
- Diagnostic positions now return column position returned by compiler (elixir 1.14+)
- Diagnostic position fixed to never return invalid negative values
- An exact `do` keyword completion is now preselected and more preferred over `defoverridable`
- Fixed hexdoc links in hover for aliased modules and imported functions ([Milo Lee](https://github.com/oo6))
- Better module name suggestions in Phoenix `live` directory ([Manos Emmanouilidis](https://github.com/bottlenecked))

**Deprecations**
- Minimum version of Elixir is now 1.11

### v0.10.0: 10 June 2022

Improvements to debugger addapter:

- A lot of new features around breakpoints: function breakpoints, conditional breakpoints, hit count and log points [#656](https://github.com/elixir-lsp/elixir-ls/pull/656), [#661](https://github.com/elixir-lsp/elixir-ls/pull/661), [#671](https://github.com/elixir-lsp/elixir-ls/pull/671) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Completions in debugger eval console [#679](https://github.com/elixir-lsp/elixir-ls/pull/679) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Debugger evaluate results can now be expanded [#672](https://github.com/elixir-lsp/elixir-ls/pull/672) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Messages in the queue of debugged process can now be examined [#681](https://github.com/elixir-lsp/elixir-ls/pull/681) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Debugger can now handle pause and terminateThread requests [#675](https://github.com/elixir-lsp/elixir-ls/pull/675) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Clipboard and hover eval is now supported in debugger [#680](https://github.com/elixir-lsp/elixir-ls/pull/680) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Auto interpreting can now be disabled [#616](https://github.com/elixir-lsp/elixir-ls/pull/616) (thanks [Jason Axelson](https://github.com/axelson))
- Debugger conforms better to DAP 1.51 specification [#678](https://github.com/elixir-lsp/elixir-ls/pull/678) (thanks [Łukasz Samson](https://github.com/lukaszsamson))

Improvements to language server:

- Language server can now be restarted via custom command (e.g. from VSCode) [#653](https://github.com/elixir-lsp/elixir-ls/pull/653) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Hover provider adds links to hexdocs.pm [#574](https://github.com/elixir-lsp/elixir-ls/pull/574) (thanks [Fenix](https://github.com/zhenfeng-zhu))
- Numerous cases of invalid UTF8-UTF16 position conversions fixed [#677](https://github.com/elixir-lsp/elixir-ls/pull/677) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Improved markdown wrapping [#663](https://github.com/elixir-lsp/elixir-ls/pull/663) (thanks [我没有抓狂](https://github.com/BlindingDark))
- Improved MIX_TARGET environment variable handling [#670](https://github.com/elixir-lsp/elixir-ls/pull/670) (thanks [Masatoshi Nishiguchi](https://github.com/mnishiguchi))
- defmodule snippet now suggests a module name [#684](https://github.com/elixir-lsp/elixir-ls/pull/684) (thanks [Manos Emmanouilidis](https://github.com/bottlenecked))
- Constant recompilation on Nerves projects fixed [#686](https://github.com/elixir-lsp/elixir-ls/issues/686) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Invalid negative positions in diagnostics are no longer emitted [#695](https://github.com/elixir-lsp/elixir-ls/pull/695) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Improvements to document symbols provider (https://github.com/elixir-lsp/elixir-ls/commit/1e38db4c9dd9277dfffd9563286f652e3d617a5f) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Added support for OTP 25 new dialyzer options (https://github.com/elixir-lsp/elixir-ls/commit/0da7623f644f79559699e9f002820ad9219d108d) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Improvements to complete (operator, sigil, bitstring) [#150](https://github.com/elixir-lsp/elixir_sense/pull/150), (https://github.com/elixir-lsp/elixir_sense/commit/33df514a1254455f54cb069999454c7e8586eb2d) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Improved alias resolution (https://github.com/elixir-lsp/elixir_sense/issues/151) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Fixed crash on OTP 24.2 (https://github.com/elixir-lsp/elixir_sense/commit/72f3d4ffee3c11c289d47d14a6c5f6e1a4afacb4) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Better function detection when hovering inside string interpolation [#152](https://github.com/elixir-lsp/elixir_sense/pull/152) (thanks [Milo Lee](https://github.com/oo6))
- Support for external plugins to elixir_sense [#141](https://github.com/elixir-lsp/elixir_sense/pull/141) (thanks [Zach Daniel](https://github.com/zachdaniel))

VSCode:

- To Pipe and From Pipe code transformation command [#182](https://github.com/elixir-lsp/vscode-elixir-ls/pull/182) (thanks [Paulo Valente](https://github.com/polvalente))
- Restart language server command added [#218](https://github.com/elixir-lsp/vscode-elixir-ls/pull/218) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- New settings related to auto interpreting in debugger (https://github.com/elixir-lsp/vscode-elixir-ls/commit/4294f9f0da6819e519aa4278f5f2d553ff054dac) (thanks [Jason Axelson](https://github.com/axelson))
- New OTP 25 dialyzer settings (https://github.com/elixir-lsp/vscode-elixir-ls/commit/50a8a53fa79c14d2ea4031f872ec3d7cd32155f5) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
- Compile time environment variables can now be set in extension config [#213](https://github.com/elixir-lsp/vscode-elixir-ls/pull/213) (thanks [vacarsu](https://github.com/vacarsu))
- Additional watched extensions can now be set in extension config [#197](https://github.com/elixir-lsp/vscode-elixir-ls/pull/197) (thanks [Vanja Bucic](https://github.com/vanjabucic))
- Improved unquite_slicing highlighting [#221](https://github.com/elixir-lsp/vscode-elixir-ls/pull/221) (thanks [Milo Lee](https://github.com/oo6))
- Improved string interpolation highlighting [#229](https://github.com/elixir-lsp/vscode-elixir-ls/pull/229) (thanks [Milo Lee](https://github.com/oo6))
- Improved regex with < highlighting [#226](https://github.com/elixir-lsp/vscode-elixir-ls/pull/226) (thanks [Tiago Moraes](https://github.com/tiagoefmoraes))
- Extension updated to use LSP v3.16 [#227](https://github.com/elixir-lsp/vscode-elixir-ls/pull/227) (thanks [Łukasz Samson](https://github.com/lukaszsamson))

Housekeeping:

thanks [Łukasz Samson](https://github.com/lukaszsamson), [Thanabodee Charoenpiriyakij](https://github.com/wingyplus), [Daniils Petrovs](https://github.com/DaniruKun), [Jason Axelson](https://github.com/axelson)

### v0.9.0: 4 December 2021

Improvements:
Expand Down
62 changes: 62 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Code of Conduct

Contact: [email protected]

## Why have a Code of Conduct?

As contributors and maintainers of this project, we are committed to providing a friendly, safe and welcoming environment for all, regardless of age, disability, gender, nationality, race, religion, sexuality, or similar personal characteristic.

The goal of the Code of Conduct is to specify a baseline standard of behavior so that people with different social values and communication styles can talk about Elixir effectively, productively, and respectfully, even in face of disagreements. The Code of Conduct also provides a mechanism for resolving conflicts in the community when they arise.

## Our Values

These are the values ElixirLS developers should aspire to:

* Be friendly and welcoming
* Be kind
* Remember that people have varying communication styles and that not everyone is using their native language. (Meaning and tone can be lost in translation.)
* Interpret the arguments of others in good faith, do not seek to disagree.
* When we do disagree, try to understand why.
* Be thoughtful
* Productive communication requires effort. Think about how your words will be interpreted.
* Remember that sometimes it is best to refrain entirely from commenting.
* Be respectful
* In particular, respect differences of opinion. It is important that we resolve disagreements and differing views constructively.
* Be constructive
* Avoid derailing: stay on topic; if you want to talk about something else, start a new conversation.
* Avoid unconstructive criticism: don't merely decry the current state of affairs; offer — or at least solicit — suggestions as to how things may be improved.
* Avoid harsh words and stern tone: we are all aligned towards the well-being of the community and the progress of the ecosystem. Harsh words exclude, demotivate, and lead to unnecessary conflict.
* Avoid snarking (pithy, unproductive, sniping comments).
* Avoid microaggressions (brief and commonplace verbal, behavioral and environmental indignities that communicate hostile, derogatory or negative slights and insults towards a project, person or group).
* Be responsible
* What you say and do matters. Take responsibility for your words and actions, including their consequences, whether intended or otherwise.

The following actions are explicitly forbidden:

* Insulting, demeaning, hateful, or threatening remarks.
* Discrimination based on age, disability, gender, nationality, race, religion, sexuality, or similar personal characteristic.
* Bullying or systematic harassment.
* Unwelcome sexual advances.
* Incitement to any of these.

## Where does the Code of Conduct apply?

If you participate in or contribute to the ElixirLS in any way, you are encouraged to follow the Code of Conduct while doing so.

Explicit enforcement of the Code of Conduct applies to the official mediums operated by the ElixirLS project:

* The [official GitHub projects][1] and code reviews.

Other ElixirLS activities (such as conferences, meetups, and unofficial forums) are encouraged to adopt this Code of Conduct. Such groups must provide their own contact information.

Project maintainers may block, remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by emailing: [email protected]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. **All reports will be kept confidential**.

**The goal of the Code of Conduct is to resolve conflicts in the most harmonious way possible**. We hope that in most cases issues may be resolved through polite discussion and mutual agreement. Bannings and other forceful measures are to be employed only as a last resort. **Do not** post about the issue publicly or try to rally sentiment against a particular individual or group.

## Acknowledgements

This document was based on the Code of Conduct from the Go project (dated Sep/2021) and the Contributor Covenant (v1.4).

[1]: https://github.com/elixir-lsp/
Loading