Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
250 commits
Select commit Hold shift + click to select a range
94f1c84
[#1152] Emit error in case the module name does not coincide with the…
robertoaloi Dec 11, 2021
30c8bde
Merge pull request #1156 from erlang-ls/1152-emit-module-name-error
robertoaloi Dec 12, 2021
0811438
Parse incomplete text
gomoripeti Nov 26, 2021
658e8ff
Merge pull request #1146 from gomoripeti/incomplete
robertoaloi Dec 12, 2021
8b489ff
[#1050] Filter log notification method to avoid recursion
Dec 17, 2021
2f6decd
Precompute list of enabled diagnostics
robertoaloi Dec 24, 2021
f47bae5
Merge pull request #1158 from AminArria/fix-recursive-logs
robertoaloi Jan 13, 2022
d485f64
Take CRLF into account
lukebakken Jan 13, 2022
b3ce352
Merge pull request #1172 from erlang-ls/precompute-enabled-diagnostics
robertoaloi Jan 14, 2022
59bb8a5
Fix typos
kianmeng Jan 14, 2022
8ee4d63
[#1174] [emacs] Ensure keybinding is configured before loading lsp-mode
robertoaloi Jan 17, 2022
54c6fce
Update elvis_core
lukebakken Jan 18, 2022
b168d39
Fix parsing trailing comments in modules
gomoripeti Jan 11, 2022
339001b
Merge pull request #1175 from erlang-ls/1174-set-keymap-prefix-after-…
robertoaloi Jan 20, 2022
e648a96
Merge pull request #1178 from gomoripeti/parse_trailing_comment
robertoaloi Jan 21, 2022
74d1cd3
Merge pull request #1176 from lukebakken/crlf-line-endings
robertoaloi Jan 21, 2022
d1fd171
Merge pull request #1173 from kianmeng/fix-typos
robertoaloi Jan 21, 2022
d4c21c6
Augment local config onto global config
plux Jan 27, 2022
f132bb2
Merge pull request #1184 from plux/augment-global-config
robertoaloi Jan 30, 2022
db82b7c
Fix issues with rename variable involving specs (#1183)
plux Jan 30, 2022
0fa9df8
Completion without snippets (#1170)
sirikid Jan 30, 2022
2d4b4e0
Ensure that default node name is valid (#1182)
plux Jan 30, 2022
4d6b1db
Fix parsing of define arguments (#1186)
plux Feb 1, 2022
3e7ef67
Allow installing into custom directory (#1188)
HiPhish Feb 1, 2022
3e9902a
Support renaming function when standing on spec (#1190)
plux Feb 4, 2022
5ee868c
Improve goto definition for variables (#1187)
plux Feb 4, 2022
4205028
Avoid compiler_diagnostics crash in case module name is invalid (#1191)
robertoaloi Feb 4, 2022
6154388
Add case snippet (#1194)
robertoaloi Feb 12, 2022
e0939ff
Add support for renaming modules (#1196)
plux Feb 14, 2022
dcbeecb
Fix handle module name whitespace (#1195)
plux Feb 14, 2022
c371027
Revert "Precompute list of enabled diagnostics" (#1197)
robertoaloi Feb 14, 2022
a24f3e9
Fix support for renaming modules (#1199)
robertoaloi Feb 15, 2022
ffa289a
Implement new code actions (#1212)
plux Feb 19, 2022
48489ff
Drop OTP 21 (#1215)
robertoaloi Feb 19, 2022
ca11c06
Edoc diagnostics (#1213)
robertoaloi Feb 19, 2022
c28a08f
Drop OTP 21 support in rebar.config and README (#1217)
robertoaloi Feb 20, 2022
451428d
Use Jaro distance for the unbound variable code action (#1225)
plux Feb 24, 2022
0e7814e
Better support for goto definition when parsing is incomplete (#1224)
plux Feb 24, 2022
c544498
Supply quickfix to remove unused macro (#1226)
fangzhzh Feb 24, 2022
e45d7ae
Safer incremental sync (#1222)
plux Feb 24, 2022
126c4da
Add Fix for #1202 remove unused include (#1227)
rahulraina7 Feb 28, 2022
44eee38
Make it easier to include Erlang LS as a dependency. (#1229)
robertoaloi Mar 2, 2022
6dcf643
DAP should return 0 on version command (#1230)
robertoaloi Mar 2, 2022
9b9393d
Use fork of yamerl, to allow inclusion of Erlang LS as a dependency (…
robertoaloi Mar 2, 2022
f9ce810
Add missing upgrade to rebar.lock (#1232)
robertoaloi Mar 2, 2022
dc5ece1
Handle incomplete type definitions better (#1237)
gomoripeti Mar 8, 2022
4e288d3
Avoid negative line numbers in elvis diagnostics. (#1233)
ztion Mar 8, 2022
14d0df8
Only run EDoc diagnostics on .erl files (#1242)
robertoaloi Mar 10, 2022
e8806e2
Update Gradualizer to the the current master (#1239)
erszcz Mar 10, 2022
0fc151d
Add support for custom EDoc tags (#1243)
robertoaloi Mar 10, 2022
0f95fec
Reload project-specific files on every Graudalizer diagnostic run (#1…
erszcz Mar 10, 2022
3ef713c
Improve DAP Error Handling (#1246)
robertoaloi Mar 17, 2022
2bfcc46
Add support for didChangeWatchedFiles (#1247)
robertoaloi Mar 18, 2022
45ab202
Handle `not_found` result from docsh (#1198)
keynslug Mar 21, 2022
ad06727
Start apps as permanent (#1249)
robertoaloi Mar 24, 2022
9eed7d4
Skip indexing of generated files (#1255)
robertoaloi Mar 25, 2022
b87b84d
RefactorErl Diagnostics (#1137)
robertfiko Apr 1, 2022
a9727c9
On demand indexing (#1260)
robertoaloi Apr 8, 2022
dc3a5e1
Single Provider Process (#1264)
robertoaloi Apr 19, 2022
252474d
Revert shutdown strategy for background jobs (#1273)
robertoaloi Apr 19, 2022
8ca5170
Ensure EPMD is running when launching debugger (#1276)
robertoaloi Apr 20, 2022
0f6962e
Refactor folding_ranges onto POIs, Add support for records. (#1268)
tks2103 Apr 21, 2022
c121208
Support for adding undefined Function (#1267)
f2000357 Apr 21, 2022
8b530ce
Introduce versioning of documents (#1265)
robertoaloi Apr 22, 2022
abdfa8c
Do not reload file from disk on save (#1278)
robertoaloi Apr 25, 2022
de0fb74
Use version from didOpen, use text from editor as source of truth (#1…
robertoaloi Apr 25, 2022
7b4ada6
Expose errors via stderr (#1281)
robertoaloi Apr 27, 2022
4ac4ef1
Handle query string in Uri (#1283)
robertoaloi Apr 28, 2022
2d29744
[#772] Only complete arguments for snippets. (#1263)
the-mikedavis Apr 28, 2022
77472fb
Allow user to provide custom PREFIX (#1282)
sidkshatriya Apr 28, 2022
25d813a
Include macros, records and type definitions in document symbols (#1284)
robertoaloi May 2, 2022
4137253
Get tmp system dir in a portable way during tests (#1285)
robertoaloi May 2, 2022
54ade68
Do not crash if module is not available while fetching specs (#1286)
robertoaloi May 5, 2022
95e906e
Solidify provider process (#1287)
robertoaloi May 5, 2022
4449a63
Add debugging for issue #1288 (#1289)
robertoaloi May 5, 2022
6fad903
Avoid race condition around POIs extraction (#1291)
robertoaloi May 10, 2022
21d8630
Refactoring to fix review comments from PR #1212 (#1223)
plux May 10, 2022
cfab726
Track open files (#1292)
robertoaloi May 10, 2022
fb3bdf7
Add randomness to DAP node name (#1295)
robertoaloi May 12, 2022
c19fb72
Apply erlfmt to the entire codebase (#1297)
robertoaloi May 12, 2022
2dfb48a
Do not read file from disk on didOpen (#1298)
robertoaloi May 13, 2022
64f58c9
Add support for completion of predefined macros (#1302)
plux May 16, 2022
d19557a
Cleanup Points of Interest (#1303)
robertoaloi May 18, 2022
27a0489
Improve create undefined function quick action (#1301)
plux May 18, 2022
b5359d5
fix els_typer on otp25 (#1305)
sg2342 May 19, 2022
97721de
Add telemetry events for diagnostics and indexing (#1306)
robertoaloi May 19, 2022
2347a09
Avoid crash while reloading non-existing file (#1308)
robertoaloi May 23, 2022
c6f6458
Return set, log as an error (#1311)
robertoaloi May 25, 2022
0e3411f
Only follow includes for hrl files (#1313)
plux May 25, 2022
b5a2730
Add atom typo diagnostics (#1315)
plux May 26, 2022
f49cb29
Add completion support for features (#1314)
plux May 26, 2022
d5f6dce
Truncate log file once it reaches 10MB, keep max 5 archive files (#1317)
robertoaloi May 26, 2022
de41fd1
Relax supervision max restart intensity (#1316)
robertoaloi May 26, 2022
78c0ab2
Degrade gracefully to no diagnostics if text cannot be parsed (#1318)
robertoaloi May 31, 2022
90a09f1
Only store include/include_lib POIs as string (#1319)
robertoaloi Jun 1, 2022
9ce2bc2
Pin rebar3_lint version to be able to support OTP 22 (#1320)
robertoaloi Jun 3, 2022
32ced53
Treat incomplete trigger kind as invoked completion (#1321)
plux Jun 3, 2022
6f51ea1
Optimize unused includes detection by avoiding unnecessary work (#1322)
robertoaloi Jun 9, 2022
c74e3f7
Consider argument of ifdef, ifndef, undef attributes to be a macro (#…
plux Jun 13, 2022
550165e
[#1300] Implement textDocument/signatureHelp. (#1307)
the-mikedavis Jun 13, 2022
6d15aa4
Handle vars when parsing function applications (#1326)
plux Jun 13, 2022
3a8c4fa
[#1205] Implement goto_definition for testcases. (#1330)
RobinMorisset Jun 13, 2022
2c539fd
Merge server and provider processes. (#1329)
robertoaloi Jun 14, 2022
637022b
Register capabilities dynamically, complete support for didChangedWat…
robertoaloi Jun 14, 2022
4ad0749
GotoDef returning multiple definitions for atoms (#1338)
Gabisampaio Jun 20, 2022
274beb7
Integrate Wrangler (#1228)
kdmnk Jun 21, 2022
9f70a42
[#1310] Add a configuration option for advertised LSP providers. (#1341)
the-mikedavis Jul 4, 2022
d067267
Do not send the 'body' field for DAP Initialized Event. (#1345)
the-mikedavis Jul 4, 2022
6f88d03
Make "callHierarchy/incomingCalls" more resilient
alanz Jul 26, 2022
92df400
Merge pull request #1350 from erlang-ls/incoming-references
alanz Jul 26, 2022
a45c2e6
DAP: add `expensive` field to scopes type. (#1347)
the-mikedavis Aug 1, 2022
5a4e62f
[dap] normalize paths in source field (#1351)
TheGeorge Aug 1, 2022
eca7e65
Do not respond to notifications in case of internal errors (#1354)
robertoaloi Aug 3, 2022
494bc0e
Add support for eqwalizer diagnostics (#1356)
robertoaloi Aug 5, 2022
b653ef8
Ensure to pass an absolute path to the `els_uri:uri/1` function (#1357)
robertoaloi Aug 8, 2022
a8c7d16
Remove eqwalizer as dependency (#1358)
robertoaloi Aug 8, 2022
1d85008
Remove eqwalizer_support from rebar.lock file (#1359)
robertoaloi Aug 8, 2022
a2e2582
Use the wrapping range for symbols, when available (#1368)
robertoaloi Aug 23, 2022
6ec9407
Send end progress when request is cancelled. (#1366)
ztion Aug 23, 2022
55a3854
Use explicit symbol range for document symbols (#1370)
robertoaloi Aug 29, 2022
4afd022
[1371] Add Custom Hostname and Domain Options (#1372)
zachlankton Sep 8, 2022
f1525fc
[dap] support non-verified breakpoints (#1374)
TheGeorge Sep 15, 2022
d5adfbd
Find references asynchronously (#1380)
robertoaloi Sep 19, 2022
f29bc45
[#1290] Fix error when parsing record containing a comment (#1382)
plux Sep 22, 2022
4c5e65e
[#1360] Support completion of record fields inside #record{} (#1381)
plux Oct 3, 2022
fc00bd4
[#1353] Add support for prepareRename request (#1384)
plux Oct 3, 2022
f8691b9
Show function docs for function_clauses and specs (#1385)
the-mikedavis Oct 3, 2022
96b7adb
Add support for finding callback implementation for dynamic calls (#1…
plux Oct 3, 2022
bd7e901
Improve context awareness of completion (#1386)
plux Oct 4, 2022
b151f9d
Fix out of bounds crashes in completion (#1388)
plux Oct 5, 2022
c6a8a5e
[#1391] Add support for record index in els_parser (#1392)
plux Nov 7, 2022
0ccd4c7
Ignore auto-formatting commit from git blame (#1393)
the-mikedavis Nov 7, 2022
8bc209d
Check snippet support in record field completion (#1395)
the-mikedavis Nov 7, 2022
e53aa6c
Fix performance issue with unused includes diagnostics (#1398)
plux Nov 8, 2022
47de6bc
Add code action to add behaviour callbacks (#1399)
plux Nov 8, 2022
68bb338
Show type docs when hovering type definitions (#1397)
the-mikedavis Nov 8, 2022
8e4dcf8
[#1046,#1064] Follow symlinks in `els_utils:resolve_paths/2` (#1394)
the-mikedavis Nov 8, 2022
2c17eae
Disable suggest-spec lens by default (#1405)
robertoaloi Nov 15, 2022
1a66e87
Do not crash in case of empty data (#1414)
robertoaloi Dec 15, 2022
f5398b2
[#1401] Present configuration read errors for the user (#1406)
fabjan Feb 15, 2023
cfcf610
Make test suite work in OTP 25 (#1402)
fabjan Feb 21, 2023
229175e
[DAP] Prioritize information from module_info when available (#1421)
robertoaloi Feb 21, 2023
47cefbb
[DAP] Use cwd from launch config, not from project node (#1433)
robertoaloi May 26, 2023
7ed288b
[DAP] Ensure breakpoints are purged on setBreakpoints (#1434)
robertoaloi Jun 1, 2023
e315f98
[DAP] Notify client when a process terminates (#1435)
robertoaloi Jun 1, 2023
e91c951
Update Gradualizer to 0.3.0 (#1440)
erszcz Jun 17, 2023
290863d
Update runtime_node.md (#1432)
mhanberg Jul 8, 2023
f323408
Handle extended head mismatch error (#1439)
jchristgit Jul 8, 2023
15b59b5
Add github release.yml to publish binary artifacts
alanz Aug 4, 2023
a0e00b8
Merge pull request #1446 from erlang-ls/upload-artifacts
alanz Aug 4, 2023
a4a1200
Move DAP debugger to separate repo (#1447)
robertoaloi Aug 14, 2023
9aeb824
Make edoc an optional dependency (#1277)
filmor Oct 23, 2023
b2b9945
Add goto definition for implemented behaviour callbacks (#1463)
fridayy Dec 20, 2023
cee4096
Add edoc_parse_enabled to config (#1464)
plux Dec 20, 2023
8e25c99
[LSP] Fix initialize on OTP 23.0/23.1 (#1449)
danielfinke Dec 21, 2023
0f4eb7b
Add nonempty_binary and nonempty_bitstring (#1454)
MarkoMin Dec 21, 2023
438fb53
Added config item 'erls_dirs' to add code not in 'src' to the scope (…
shuying2244 Dec 21, 2023
45dbe5e
[#1337] Make goto variable definition respect list comprehension scop…
plux Dec 21, 2023
c520791
els_typer: Handle OTP26 changes to dialyzer functions (#1444)
the-mikedavis Dec 21, 2023
7801b22
Lowercase drive letter in URIs for Windows (#1441)
corben2 Dec 21, 2023
3b5ea3a
Add OTP 26 to CI (#1465)
plux Dec 21, 2023
7d869b7
Update supported OTP versions
plux Dec 21, 2023
19cb8fe
Add link to documentation in readme
plux Dec 21, 2023
5dbfa33
'index_dir' now overrides subdirectories, which is useful when lookin…
shuying2244 Dec 21, 2023
d263867
hrl don't have to warning unuse (#1426)
LiDoMin Dec 21, 2023
16eea7d
Add OTP 26 to release workflow (#1467)
plux Dec 21, 2023
7163398
Make code_reload act regardless of diagnostics (#1423)
fabjan Dec 21, 2023
a4047b7
Respect appdirs when prioritizing module candidates. (#1418)
keynslug Dec 21, 2023
09d6e2d
Find references for atoms (#1404)
the-mikedavis Dec 21, 2023
4322eb1
Add -hidden flag (#1430)
mkuratczyk Dec 21, 2023
3e54aae
Fix formatting (#1468)
plux Dec 21, 2023
b9e854a
Add the DEVELOPERS-README.md file
robertoaloi Dec 22, 2023
89f8a02
fix error when using "code_path_extra_dirs" in windows (#1472)
LCLight Jan 8, 2024
c6c56d1
Fix invalid crossref warning for Mod:module_info() (#1474)
plux Jan 8, 2024
31dd2dd
Add docs memoization (#1417)
jdamanalo Jan 8, 2024
22ae2c0
Allow code_reload.node to be a list of nodes (#1413)
mkuratczyk Jan 8, 2024
9696858
Allows custom setting the formatter (#1473)
lafirest Jan 8, 2024
f0eba6c
Log root path when initializing (#1479)
plux Jan 9, 2024
a8390f4
Multiple edits could cause invalid text edits (#1478)
plux Jan 9, 2024
6c797b0
Handle recursive deps for behaviours (#1477)
plux Jan 9, 2024
6476075
Improve performance when completing behaviours (#1481)
plux Jan 10, 2024
daaea65
Improve macro refs performance (#1476)
plux Jan 10, 2024
7244d7c
Make completions calls async (#1480)
plux Jan 10, 2024
50a2d57
Fix els_parser crash due to erlfmt returning {skip, _} (#1483)
plux Jan 10, 2024
87aa757
`all` target - building as dap not required (#1475)
MarkoMin Jan 17, 2024
ca03a27
Bump erlfmt to upstream 1.3.0 (#1469)
gomoripeti Jan 17, 2024
b29ef4a
Disable els_docs_SUITE (#1485)
plux Jan 17, 2024
273c857
Run edoc chunk generation in spawned process (#1484)
plux Jan 18, 2024
f901490
Improve create function code action (#1487)
plux Jan 19, 2024
9885375
Add completion support for -module attribute (#1486)
plux Jan 19, 2024
70efe8f
Add heuristic to improve completion in exports. (#1490)
plux Jan 23, 2024
63b1839
Add some sensible defaults if rebar.config is found (#1491)
plux Jan 24, 2024
7843781
Fix garbled output when formatting unicode characters (#1496)
plux Feb 7, 2024
88a1adb
Cleanup unused includes/macros (as identified by ELP) (#1499)
robertoaloi Feb 23, 2024
c333e2e
[#1121] Expand environment variables in config file. (#1497)
plux Apr 17, 2024
a0bf4fe
Don't emit parser error when ?MODULE is used in a header file (#1503)
plux Apr 18, 2024
0543c32
Add support for inlay hints (#1504)
plux Apr 22, 2024
908d9e8
Add refactoring code action to extract function (#1506)
plux Apr 25, 2024
acea603
Add support for parsing implicit fun with ?MODULE (#1509)
plux Apr 30, 2024
8e7e27a
Code actions undefined macro and record (#1510)
plux Apr 30, 2024
eceb806
Completion of module macro (#1508)
plux Apr 30, 2024
00864ec
Drop OTP 23 support (#1511)
plux May 3, 2024
5111381
Avoid running get_words twice when opening new file (#1513)
ztion May 4, 2024
65136e3
Change linum-mode to display-line-numbers-mode (#1515)
peerst May 5, 2024
46b80b5
Extract argument names from specs (#1517)
plux May 5, 2024
4b497a4
Use info from -spec for inlay hints if available. (#1519)
plux May 6, 2024
f9f4076
Store spec args in signature index for better performance (#1520)
plux May 7, 2024
bf5f55f
Add inlay hints to show if a function is exported (#1521)
plux May 7, 2024
8700e96
Bump elvis to 3.2.2 (#1522)
plux May 19, 2024
e554b99
Fix crash when line is unknown (#1525) (#1526)
zsoci Jun 18, 2024
a71c3d7
Add support for eunit diagnostics (#1523)
plux Jun 18, 2024
8dfddf3
Bump version of upload-artifact action in workflows (#1533)
plux Sep 16, 2024
6809242
comment out upload-artifact from workflows
plux Sep 17, 2024
29181b2
Add OTP 27 to build / release workflow (#1534)
plux Sep 18, 2024
29893f3
Bump erlang and rebar3 version for windows (#1535)
plux Sep 18, 2024
dc12111
Add OTP 27 to supported versions
plux Sep 18, 2024
eccc48d
OTP27 support (#1530)
MarkoMin Sep 18, 2024
fd4ac53
Replace jsx with stdlib json (#1536)
plux Sep 18, 2024
acd7f80
Add 'TEST' macro to options when compile for reload (#1528)
zsoci Sep 18, 2024
d38dc66
Add suggest code actions for undefined record and record fields (#1539)
plux Sep 18, 2024
527c0c8
Don't crash if custom snippets directory isn't available (#1540)
plux Sep 18, 2024
029ebe2
Add support for -spec attribute completion (#1541)
plux Sep 19, 2024
6410bf6
Only run coveralls on one target to avoid build fails (#1542)
plux Sep 19, 2024
dd4a679
Simplify attribute_spec code (#1543)
plux Sep 20, 2024
de391a6
Fix parser crash on 'fun F/A' (#1544)
plux Sep 20, 2024
79eab37
nifs attribute completion (#1537)
plux Sep 23, 2024
9c0d48e
Add config option to include / exclude files for formatting. (#1546)
plux Sep 25, 2024
89a2a4c
More completions (#1545)
plux Sep 25, 2024
e1d04e2
Add completion for binary type specifiers (#1547)
plux Sep 26, 2024
eeec8ef
Add possiblity to configure formatting width (#1548)
plux Sep 26, 2024
bfafd78
Handle completing quoted macros like ?'FOO BAR' (#1549)
plux Sep 26, 2024
21fc148
Go to definition can now handle lines where parsing fails (#1550)
plux Sep 26, 2024
5afd375
Handle parsing sigil (#1551)
plux Sep 27, 2024
0a15a75
Workflows macos (#1552)
plux Sep 30, 2024
3342c36
Add support for bump variables code action (#1553)
plux Sep 30, 2024
c0096fd
Fix bug where completion would erroneously think it's inside a record…
plux Oct 1, 2024
d5bb5a8
Make formatting use in-memory text instead of file content. (#1555)
plux Oct 1, 2024
05a8477
Support OTP 27 style docs (#1556)
plux Oct 2, 2024
01b4afe
Escriptize in macos release workflow
plux Oct 2, 2024
bcfbb23
Improve performance of crossref diagnostics. (#1557)
plux Oct 7, 2024
fd26c04
Don't show inlay hint for _Var if arg is named Var (#1558)
plux Oct 7, 2024
04a32dd
Fuzzy goto (#1559)
plux Oct 7, 2024
2bda865
Add action for suggesting undefined function and modules (#1560)
plux Oct 9, 2024
f8a6ee1
Add OTP support in "Add include_lib" action (#1561)
plux Oct 9, 2024
ed1daaa
Adjust GitHub workflows (#1562)
plux Oct 9, 2024
5bde640
Fix crash in code actions (#1565)
plux Oct 11, 2024
5959282
Remove leading underscore from inlay hint (#1564)
plux Oct 11, 2024
52bf40e
Improvements to extract function (#1563)
plux Oct 11, 2024
b8724fb
Introduce browse code actions (#1566)
plux Oct 12, 2024
3a79185
Mark project as unmaintained.
robertoaloi Aug 15, 2025
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
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ end_of_line = LF

[*]
indent_style = space
indent_size = 2
indent_size = 4
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 80
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Apply erlfmt to the entire codebase (#1297)
c19fb7239ef6766aa7e583d1c010ac38588a3de3
101 changes: 63 additions & 38 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
strategy:
matrix:
platform: [ubuntu-latest]
otp-version: [21, 22, 23, 24]
otp-version: [24, 25, 26, 27]
runs-on: ${{ matrix.platform }}
container:
image: erlang:${{ matrix.otp-version }}
Expand All @@ -37,31 +37,28 @@ jobs:
run: rebar3 compile
- name: Escriptize LSP Server
run: rebar3 escriptize
- name: Store LSP Server Escript
uses: actions/upload-artifact@v2
with:
name: erlang_ls
path: _build/default/bin/erlang_ls
- name: Escriptize DAP Server
run: rebar3 as dap escriptize
- name: Store DAP Server Escript
uses: actions/upload-artifact@v2
with:
name: els_dap
path: _build/dap/bin/els_dap
# - name: Store LSP Server Escript
# uses: actions/upload-artifact@v4
# with:
# name: erlang_ls
# path: _build/default/bin/erlang_ls
# overwrite: true
- name: Check formatting
run: rebar3 fmt -c
- name: Lint
run: rebar3 lint
- name: Generate Dialyzer PLT for usage in CT Tests
run: dialyzer --build_plt --apps erts kernel stdlib
run: dialyzer --build_plt --apps erts kernel stdlib compiler crypto parsetools
- name: Start epmd as daemon
run: epmd -daemon
- name: Run CT Tests
run: rebar3 ct
- name: Store CT Logs
uses: actions/upload-artifact@v2
with:
name: ct-logs
path: _build/test/logs
# - name: Store CT Logs
# uses: actions/upload-artifact@v4
# with:
# name: ct-logs
# path: _build/test/logs
# overwrite: true
- name: Run PropEr Tests
run: rebar3 proper --cover --constraint_tries 100
- name: Run Checks
Expand All @@ -70,43 +67,71 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: rebar3 do cover, coveralls send
- name: Produce Documentation
run: rebar3 edoc
- name: Publish Documentation
uses: actions/upload-artifact@v2
with:
name: edoc
path: |
apps/els_core/doc
apps/els_lsp/doc
apps/els_dap/doc
if: matrix.otp-version == '27'
# - name: Produce Documentation
# run: rebar3 edoc
# if: ${{ matrix.otp-version == '24' }}
# - name: Publish Documentation
# uses: actions/upload-artifact@v4
# with:
# name: edoc
# path: |
# apps/els_core/doc
# apps/els_lsp/doc
# overwrite: true
windows:
runs-on: windows-latest
strategy:
matrix:
platform: [windows-latest]
otp-version: [26.2.5.3]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Erlang
run: choco install -y erlang --version 22.3
run: choco install -y erlang --version ${{ matrix.otp-version }}
- name: Install rebar3
run: choco install -y rebar3 --version 3.13.1
run: choco install -y rebar3 --version 3.23.0
- name: Compile
run: rebar3 compile
- name: Lint
run: rebar3 lint
- name: Generate Dialyzer PLT for usage in CT Tests
run: dialyzer --build_plt --apps erts kernel stdlib
run: dialyzer --build_plt --apps erts kernel stdlib crypto compiler parsetools
- name: Start epmd as daemon
run: erl -sname a -noinput -eval "halt(0)."
- name: Run CT Tests
run: rebar3 ct
- name: Store CT Logs
uses: actions/upload-artifact@v2
with:
name: ct-logs
path: _build/test/logs
# - name: Store CT Logs
# uses: actions/upload-artifact@v4
# with:
# name: ct-logs
# path: _build/test/logs
# overwrite: true
- name: Run PropEr Tests
run: rebar3 proper --cover --constraint_tries 100
- name: Run Checks
run: rebar3 do dialyzer, xref
- name: Produce Documentation
run: rebar3 edoc
macos:
# Smaller job for MacOS to avoid excessive billing
strategy:
matrix:
platform: [macos-latest]
otp-version: [27]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v2
- name: Install Erlang
run: brew install erlang@${{ matrix.otp-version }}
- name: Install Rebar3
run: brew install rebar3
- name: Compile
run: rebar3 compile
- name: Generate Dialyzer PLT for usage in CT Tests
run: dialyzer --build_plt --apps erts kernel stdlib compiler crypto parsetools
- name: Start epmd as daemon
run: epmd -daemon
- name: Run CT Tests
run: rebar3 ct
197 changes: 197 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
name: Release
on:
release:
types:
- created

# Test trigger. Uncomment to test basic flow.
# NOTE: it will fail on trying to get the release url
# on:
# push:
# branches:
# - '*'

jobs:
linux:
strategy:
matrix:
platform: [ubuntu-latest]
otp-version: [24, 25, 26, 27]
runs-on: ${{ matrix.platform }}
container:
image: erlang:${{ matrix.otp-version }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Cache Hex packages
uses: actions/cache@v1
with:
path: ~/.cache/rebar3/hex/hexpm/packages
key: ${{ runner.os }}-hex-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.lock')) }}
restore-keys: |
${{ runner.os }}-hex-
- name: Cache Dialyzer PLTs
uses: actions/cache@v1
with:
path: ~/.cache/rebar3/rebar3_*_plt
key: ${{ runner.os }}-dialyzer-${{ hashFiles(format('{0}{1}', github.workspace, '/rebar.config')) }}
restore-keys: |
${{ runner.os }}-dialyzer-
- name: Compile
run: rebar3 compile
- name: Escriptize LSP Server
run: rebar3 escriptize
# - name: Store LSP Server Escript
# uses: actions/upload-artifact@v4
# with:
# name: erlang_ls
# path: _build/default/bin/erlang_ls
# overwrite: true
- name: Check formatting
run: rebar3 fmt -c
- name: Lint
run: rebar3 lint
- name: Generate Dialyzer PLT for usage in CT Tests
run: dialyzer --build_plt --apps erts kernel stdlib crypto compiler parsetools
- name: Start epmd as daemon
run: epmd -daemon
- name: Run CT Tests
run: rebar3 ct
# - name: Store CT Logs
# uses: actions/upload-artifact@v4
# with:
# name: ct-logs
# path: _build/test/logs
# overwrite: true
- name: Run PropEr Tests
run: rebar3 proper --cover --constraint_tries 100
- name: Run Checks
run: rebar3 do dialyzer, xref
- name: Create Cover Reports
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: rebar3 do cover, coveralls send
- name: Produce Documentation
run: rebar3 edoc
if: ${{ matrix.otp-version == '24' }}
# - name: Publish Documentation
# uses: actions/upload-artifact@v4
# with:
# name: edoc
# path: |
# apps/els_core/doc
# apps/els_lsp/doc
# overwrite: true

# Make release artifacts : erlang_ls
- name: Make erlang_ls-linux-${{ matrix.otp-version }}.tar.gz
run: 'tar -zcvf erlang_ls-linux-${{ matrix.otp-version }}.tar.gz -C _build/default/bin/ erlang_ls'
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
id: get_release_url
name: Get release url
uses: "bruceadams/get-release@v1.3.2"
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
name: Upload release erlang_ls-linux-${{ matrix.otp-version }}.tar.gz
uses: "actions/upload-release-asset@v1.0.2"
with:
asset_content_type: application/octet-stream
asset_name: "erlang_ls-linux-${{ matrix.otp-version }}.tar.gz"
asset_path: "erlang_ls-linux-${{ matrix.otp-version }}.tar.gz"
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
windows:
strategy:
matrix:
platform: [windows-latest]
otp-version: [26.2.5.3]
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Erlang
run: choco install -y erlang --version ${{ matrix.otp-version }}
- name: Install rebar3
run: choco install -y rebar3 --version 3.23.0
- name: Compile
run: rebar3 compile
- name: Escriptize LSP Server
run: rebar3 escriptize
# - name: Store LSP Server Escript
# uses: actions/upload-artifact@v4
# with:
# name: erlang_ls
# path: _build/default/bin/erlang_ls
# overwrite: true
- name: Lint
run: rebar3 lint
- name: Generate Dialyzer PLT for usage in CT Tests
run: dialyzer --build_plt --apps erts kernel stdlib crypto compiler parsetools
- name: Start epmd as daemon
run: erl -sname a -noinput -eval "halt(0)."
- name: Run CT Tests
run: rebar3 ct
# - name: Store CT Logs
# uses: actions/upload-artifact@v4
# with:
# name: ct-logs
# path: _build/test/logs
# overwrite: true
- name: Run PropEr Tests
run: rebar3 proper --cover --constraint_tries 100
- name: Run Checks
run: rebar3 do dialyzer, xref
- name: Produce Documentation
run: rebar3 edoc

# Make release artifacts : erlang_ls
- name: Make erlang_ls-windows-${{ matrix.otp-version }}.tar.gz
run: 'tar -zcvf erlang_ls-windows-${{ matrix.otp-version }}.tar.gz -C _build/default/bin/ erlang_ls'
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
id: get_release_url
name: Get release url
uses: "bruceadams/get-release@v1.3.2"
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
name: Upload release erlang_ls-windows-${{ matrix.otp-version }}.tar.gz
uses: "actions/upload-release-asset@v1.0.2"
with:
asset_content_type: application/octet-stream
asset_name: erlang_ls-windows-${{ matrix.otp-version }}.tar.gz
asset_path: erlang_ls-windows-${{ matrix.otp-version }}.tar.gz
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
macos:
# Smaller job for MacOS to avoid excessive billing
strategy:
matrix:
platform: [macos-latest]
otp-version: [24, 25, 26, 27]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v2
- name: Install Erlang
run: brew install erlang@${{ matrix.otp-version }}
- name: Install Rebar3
run: brew install rebar3
- name: Compile
run: rebar3 compile
- name: Escriptize LSP Server
run: rebar3 escriptize
# Make release artifacts : erlang_ls
- name: Make erlang_ls-macos-${{ matrix.otp-version }}.tar.gz
run: 'tar -zcvf erlang_ls-macos-${{ matrix.otp-version }}.tar.gz -C _build/default/bin/ erlang_ls'
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
id: get_release_url
name: Get release url
uses: "bruceadams/get-release@v1.3.2"
- env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
name: Upload release erlang_ls-macos-${{ matrix.otp-version }}.tar.gz
uses: "actions/upload-release-asset@v1.0.2"
with:
asset_content_type: application/octet-stream
asset_name: erlang_ls-macos-${{ matrix.otp-version }}.tar.gz
asset_path: erlang_ls-macos-${{ matrix.otp-version }}.tar.gz
upload_url: "${{ steps.get_release_url.outputs.upload_url }}"
14 changes: 14 additions & 0 deletions DEVELOPERS-README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Developers README

## Release Process

To create a new release:

* Access the [releases](https://github.com/erlang-ls/erlang_ls/releases) page
* Click on "Draft a new release"
* Click on the "Choose a tag" dropdown and enter a new tag (use semantic versioning)
* Click on "Generate release notes"
* Optionally amend the generated notes with highlights or other important information
* Click on "Publish Release"

To publish a new version of the VS Code extension, please refer to the [DEVELOPERS-README.md file in the erlang-ls/vscode repository](https://github.com/erlang-ls/vscode/blob/main/DEVELOPERS-README.md).
8 changes: 5 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
.PHONY: all

PREFIX ?= '/usr/local'

all:
@ echo "Building escript..."
@ rebar3 escriptize
@ rebar3 as dap escriptize

.PHONY: install
install: all
@ echo "Installing escript..."
@ cp _build/default/bin/erlang_ls /usr/local/bin
@ cp _build/dap/bin/els_dap /usr/local/bin
@ mkdir -p '${PREFIX}/bin'
@ cp _build/default/bin/erlang_ls ${PREFIX}/bin

.PHONY: clean
clean:
Expand Down
Loading