Skip to content

Commit 716de9d

Browse files
committed
Merge branch 'master' into poc_rename_symbol_tg
2 parents 42c4d30 + 2984b66 commit 716de9d

File tree

114 files changed

+5824
-2193
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+5824
-2193
lines changed

.github/dependabot.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"

.github/workflows/ci.yml

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -16,35 +16,30 @@ jobs:
1616
fail-fast: false
1717
matrix:
1818
include:
19-
- elixir: 1.10.x
20-
otp: 22.3.4.20
21-
tests_may_fail: false
22-
check_unused_deps: true
23-
- elixir: 1.11.x
24-
otp: 23.3.4.4
25-
tests_may_fail: false
26-
check_unused_deps: true
2719
- elixir: 1.12.x
28-
otp: 23.3.4.4
29-
tests_may_fail: false
30-
check_unused_deps: true
20+
otp: 22.x
21+
- elixir: 1.12.x
22+
otp: 23.x
23+
- elixir: 1.12.x
24+
otp: 24.x
25+
- elixir: 1.13.x
26+
otp: 22.x
27+
- elixir: 1.13.x
28+
otp: 23.x
3129
- elixir: 1.13.x
32-
otp: 22.3.4.20
33-
tests_may_fail: false
34-
check_unused_deps: true
35-
warnings_as_errors: false
30+
otp: 24.x
3631
- elixir: 1.13.x
37-
otp: 24.1.x
38-
tests_may_fail: false
39-
# Needs to be false until https://github.com/elixir-lsp/elixir-ls/issues/642 is fixed
40-
warnings_as_errors: false
41-
check_formatted: true
42-
check_unused_deps: true
43-
run_dialyzer: true
32+
otp: 25.x
33+
- elixir: 1.14.x
34+
otp: 23.x
35+
- elixir: 1.14.x
36+
otp: 24.x
37+
- elixir: 1.14.x
38+
otp: 25.x
4439
env:
4540
MIX_ENV: test
4641
steps:
47-
- uses: actions/checkout@v2
42+
- uses: actions/checkout@v3
4843
- uses: erlef/setup-beam@v1
4944
with:
5045
otp-version: ${{matrix.otp}}
@@ -54,28 +49,24 @@ jobs:
5449
mix local.hex --force
5550
mix local.rebar --force
5651
mix deps.get --only test
57-
- run: mix format --check-formatted
58-
if: matrix.check_formatted
59-
- run: mix compile --warnings-as-errors
60-
if: matrix.warnings_as_errors
61-
- run: mix test || ${{ matrix.tests_may_fail }}
52+
- run: mix test
6253

6354
static_analysis:
6455
name: static analysis (Elixir ${{matrix.elixir}} | Erlang/OTP ${{matrix.otp}})
6556
runs-on: ubuntu-latest
6657
strategy:
6758
matrix:
6859
include:
69-
- elixir: 1.13.x
70-
otp: 24.1.x
60+
- elixir: 1.14.x
61+
otp: 25.x
7162
steps:
72-
- uses: actions/checkout@v2
63+
- uses: actions/checkout@v3
7364
- uses: erlef/setup-beam@v1
7465
with:
7566
otp-version: ${{matrix.otp}}
7667
elixir-version: ${{matrix.elixir}}
7768
- name: Cache build artifacts
78-
uses: actions/cache@v2
69+
uses: actions/cache@v3
7970
with:
8071
path: |
8172
~/.hex
@@ -89,5 +80,6 @@ jobs:
8980
mix deps.get
9081
- name: Restore timestamps to prevent unnecessary recompilation
9182
run: IFS=$'\n'; for f in $(git ls-files); do touch -d "$(git log -n 1 --pretty='%cI' -- $f)" "$f"; done
92-
- run: mix dialyzer
93-
if: matrix.run_dialyzer
83+
- run: mix format --check-formatted
84+
- run: cd apps/language_server && mix format --check-formatted
85+
- run: mix dialyzer_vendored

.github/workflows/docsite.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515
image: squidfunk/mkdocs-material
1616
steps:
1717
- name: Checkout
18-
uses: actions/checkout@v2.3.1
18+
uses: actions/checkout@v3
1919
- name: Build
2020
run: mkdocs build -s
2121
- name: Upload artifact
22-
uses: actions/upload-artifact@v1
22+
uses: actions/upload-artifact@v3
2323
with:
2424
name: site
2525
path: site
@@ -32,9 +32,9 @@ jobs:
3232
max-parallel: 1
3333
steps:
3434
- name: Checkout
35-
uses: actions/checkout@v2.3.1
35+
uses: actions/checkout@v3
3636
- name: Download artifact
37-
uses: actions/download-artifact@v1
37+
uses: actions/download-artifact@v3
3838
with:
3939
name: site
4040
path: site

.github/workflows/release-asset.yml

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,26 +32,38 @@ jobs:
3232
strategy:
3333
matrix:
3434
include:
35+
- elixir-version: '1.14'
36+
otp-version: '25.1'
37+
- elixir-version: '1.14'
38+
otp-version: '24.3'
39+
- elixir-version: '1.14'
40+
otp-version: '23.3'
41+
- elixir-version: '1.13'
42+
otp-version: '25.1'
43+
- elixir-version: '1.13'
44+
otp-version: '24.3'
45+
- elixir-version: '1.13'
46+
otp-version: '23.3'
3547
- elixir-version: '1.13'
36-
otp-version: '24.1'
48+
otp-version: '22.3'
49+
- elixir-version: '1.12'
50+
otp-version: '24.3'
3751
- elixir-version: '1.12'
38-
otp-version: '24.1'
39-
- elixir-version: '1.11'
4052
otp-version: '23.3'
41-
- elixir-version: '1.10'
53+
- elixir-version: '1.12'
4254
otp-version: '22.3'
4355
default: true
4456

4557
steps:
46-
- uses: actions/checkout@v2
58+
- uses: actions/checkout@v3
4759
- name: Set up BEAM
4860
uses: erlef/setup-beam@v1
4961
with:
5062
elixir-version: ${{ matrix.elixir-version }}
5163
otp-version: ${{ matrix.otp-version }}
5264

5365
- name: Restore dependencies cache
54-
uses: actions/cache@v2
66+
uses: actions/cache@v3
5567
with:
5668
path: deps
5769
key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
@@ -74,7 +86,7 @@ jobs:
7486
with:
7587
upload_url: ${{ needs.release.outputs.upload_url }}
7688
asset_path: ./elixir-ls.zip
77-
asset_name: elixir-ls-${{ matrix.elixir-version }}.zip
89+
asset_name: elixir-ls-${{ matrix.elixir-version }}-${{ matrix.otp-version }}.zip
7890
asset_content_type: application/zip
7991

8092
- name: Upload Default Release Asset

.release-tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
#
44
# The versions selected here are the versions that are used to build a binary
55
# release for distribution
6-
elixir 1.10.4-otp-22
6+
elixir 1.12.3-otp-22
77
erlang 22.3.4.20

CHANGELOG.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,103 @@
11
### Unreleased
22

3+
**Deprecations**
4+
- Minimum version of Elixir is now 1.12.3
5+
6+
### v0.12.0: 7 November 2022
7+
8+
Improvements:
9+
10+
- Support for list destructuring and comprehension in `for` and `with` expressions. ElixirLS is able to provide completions for destructured list element
11+
- 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
12+
- Code action prefixing unused variables with `_` [Luca Cervello](https://github.com/lucacervello)
13+
- Complete now proposes not aliased modules and adds required `alias` [Ajay](https://github.com/ajayvigneshk)
14+
- Custom command running mix clean added. Useful when server hits a compilation error
15+
- Custom command returning tests in `.exs` file
16+
- Better handling of Phoenix components [Aaron Tinio](https://github.com/aptinio)
17+
- Test code lense improvements in umbrella apps [我没有抓狂](https://github.com/BlindingDark)
18+
- Start script improved when `$XDG_CONFIG_HOME` is not set [Sahn Lam](https://github.com/slam)
19+
- Deprecated symbols are now deprioretized in completions
20+
- Improvements to logging
21+
- Dialyxir is now vendored. This should avert dependency conflicts
22+
- ElixirLS emits more helpful error messages in case of common problems
23+
- Automatic builds can now be disabled [Hans](https://github.com/Hanspagh)
24+
- Better module name suggested for `defprotocol` [Milo Lee](https://github.com/oo6)
25+
- Improved LSP position handling
26+
27+
Fixes:
28+
29+
- Several crashes with `untitled:` schema URIs fixed
30+
- Longstanding bug in dependencies reloading leading to infamous `** (Mix.Error) Can't continue due to errors on dependencies` fixed
31+
- Fixed crash when formatting a file with syntax errors [Steve Cohen](https://github.com/scohen)
32+
- Fixed several crashes in document symbols [Steve Cohen](https://github.com/scohen)
33+
34+
### v0.11.0: 14 August 2022
35+
36+
Improvements:
37+
38+
- Elixir 1.14 support
39+
- Document symbols now return non empty selection ranges. This fixes breadcrumbs behavior in vscode
40+
- Fixed dialyzer crash on OTP 25
41+
- Added support for mix formatter plugins ([Dalibor Horinek](https://github.com/DaliborHorinek))
42+
- Debugger now returns detailed info about ports, pids and function variables
43+
- Debugger completions now return detal field
44+
- Diagnostic positions now return column position returned by compiler (elixir 1.14+)
45+
- Diagnostic position fixed to never return invalid negative values
46+
- An exact `do` keyword completion is now preselected and more preferred over `defoverridable`
47+
- Fixed hexdoc links in hover for aliased modules and imported functions ([Milo Lee](https://github.com/oo6))
48+
- Better module name suggestions in Phoenix `live` directory ([Manos Emmanouilidis](https://github.com/bottlenecked))
49+
50+
**Deprecations**
51+
- Minimum version of Elixir is now 1.11
52+
53+
### v0.10.0: 10 June 2022
54+
55+
Improvements to debugger addapter:
56+
57+
- 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))
58+
- Completions in debugger eval console [#679](https://github.com/elixir-lsp/elixir-ls/pull/679) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
59+
- Debugger evaluate results can now be expanded [#672](https://github.com/elixir-lsp/elixir-ls/pull/672) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
60+
- 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))
61+
- 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))
62+
- 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))
63+
- Auto interpreting can now be disabled [#616](https://github.com/elixir-lsp/elixir-ls/pull/616) (thanks [Jason Axelson](https://github.com/axelson))
64+
- 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))
65+
66+
Improvements to language server:
67+
68+
- 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))
69+
- Hover provider adds links to hexdocs.pm [#574](https://github.com/elixir-lsp/elixir-ls/pull/574) (thanks [Fenix](https://github.com/zhenfeng-zhu))
70+
- 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))
71+
- Improved markdown wrapping [#663](https://github.com/elixir-lsp/elixir-ls/pull/663) (thanks [我没有抓狂](https://github.com/BlindingDark))
72+
- Improved MIX_TARGET environment variable handling [#670](https://github.com/elixir-lsp/elixir-ls/pull/670) (thanks [Masatoshi Nishiguchi](https://github.com/mnishiguchi))
73+
- defmodule snippet now suggests a module name [#684](https://github.com/elixir-lsp/elixir-ls/pull/684) (thanks [Manos Emmanouilidis](https://github.com/bottlenecked))
74+
- Constant recompilation on Nerves projects fixed [#686](https://github.com/elixir-lsp/elixir-ls/issues/686) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
75+
- 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))
76+
- Improvements to document symbols provider (https://github.com/elixir-lsp/elixir-ls/commit/1e38db4c9dd9277dfffd9563286f652e3d617a5f) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
77+
- Added support for OTP 25 new dialyzer options (https://github.com/elixir-lsp/elixir-ls/commit/0da7623f644f79559699e9f002820ad9219d108d) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
78+
- 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))
79+
- Improved alias resolution (https://github.com/elixir-lsp/elixir_sense/issues/151) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
80+
- Fixed crash on OTP 24.2 (https://github.com/elixir-lsp/elixir_sense/commit/72f3d4ffee3c11c289d47d14a6c5f6e1a4afacb4) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
81+
- 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))
82+
- Support for external plugins to elixir_sense [#141](https://github.com/elixir-lsp/elixir_sense/pull/141) (thanks [Zach Daniel](https://github.com/zachdaniel))
83+
84+
VSCode:
85+
86+
- 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))
87+
- Restart language server command added [#218](https://github.com/elixir-lsp/vscode-elixir-ls/pull/218) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
88+
- 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))
89+
- New OTP 25 dialyzer settings (https://github.com/elixir-lsp/vscode-elixir-ls/commit/50a8a53fa79c14d2ea4031f872ec3d7cd32155f5) (thanks [Łukasz Samson](https://github.com/lukaszsamson))
90+
- 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))
91+
- 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))
92+
- Improved unquite_slicing highlighting [#221](https://github.com/elixir-lsp/vscode-elixir-ls/pull/221) (thanks [Milo Lee](https://github.com/oo6))
93+
- Improved string interpolation highlighting [#229](https://github.com/elixir-lsp/vscode-elixir-ls/pull/229) (thanks [Milo Lee](https://github.com/oo6))
94+
- Improved regex with < highlighting [#226](https://github.com/elixir-lsp/vscode-elixir-ls/pull/226) (thanks [Tiago Moraes](https://github.com/tiagoefmoraes))
95+
- 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))
96+
97+
Housekeeping:
98+
99+
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)
100+
3101
### v0.9.0: 4 December 2021
4102

5103
Improvements:

CODE_OF_CONDUCT.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Code of Conduct
2+
3+
4+
5+
## Why have a Code of Conduct?
6+
7+
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.
8+
9+
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.
10+
11+
## Our Values
12+
13+
These are the values ElixirLS developers should aspire to:
14+
15+
* Be friendly and welcoming
16+
* Be kind
17+
* Remember that people have varying communication styles and that not everyone is using their native language. (Meaning and tone can be lost in translation.)
18+
* Interpret the arguments of others in good faith, do not seek to disagree.
19+
* When we do disagree, try to understand why.
20+
* Be thoughtful
21+
* Productive communication requires effort. Think about how your words will be interpreted.
22+
* Remember that sometimes it is best to refrain entirely from commenting.
23+
* Be respectful
24+
* In particular, respect differences of opinion. It is important that we resolve disagreements and differing views constructively.
25+
* Be constructive
26+
* Avoid derailing: stay on topic; if you want to talk about something else, start a new conversation.
27+
* 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.
28+
* 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.
29+
* Avoid snarking (pithy, unproductive, sniping comments).
30+
* 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).
31+
* Be responsible
32+
* What you say and do matters. Take responsibility for your words and actions, including their consequences, whether intended or otherwise.
33+
34+
The following actions are explicitly forbidden:
35+
36+
* Insulting, demeaning, hateful, or threatening remarks.
37+
* Discrimination based on age, disability, gender, nationality, race, religion, sexuality, or similar personal characteristic.
38+
* Bullying or systematic harassment.
39+
* Unwelcome sexual advances.
40+
* Incitement to any of these.
41+
42+
## Where does the Code of Conduct apply?
43+
44+
If you participate in or contribute to the ElixirLS in any way, you are encouraged to follow the Code of Conduct while doing so.
45+
46+
Explicit enforcement of the Code of Conduct applies to the official mediums operated by the ElixirLS project:
47+
48+
* The [official GitHub projects][1] and code reviews.
49+
50+
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.
51+
52+
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.
53+
54+
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**.
55+
56+
**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.
57+
58+
## Acknowledgements
59+
60+
This document was based on the Code of Conduct from the Go project (dated Sep/2021) and the Contributor Covenant (v1.4).
61+
62+
[1]: https://github.com/elixir-lsp/

0 commit comments

Comments
 (0)