From c5a1422a955f04f3c99c441620188ba47b6a0801 Mon Sep 17 00:00:00 2001 From: Gabriel Nordeborn Date: Mon, 11 Sep 2023 13:24:22 +0200 Subject: [PATCH 1/2] account for pipes in completion of single unlabelled argument --- analysis/src/CompletionFrontEnd.ml | 4 +++- analysis/tests/src/CompletionExpressions.res | 5 +++++ .../expected/CompletionExpressions.res.txt | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/analysis/src/CompletionFrontEnd.ml b/analysis/src/CompletionFrontEnd.ml index 3c0cd091e..70ce8eda5 100644 --- a/analysis/src/CompletionFrontEnd.ml +++ b/analysis/src/CompletionFrontEnd.ml @@ -129,7 +129,9 @@ let findArgCompletables ~(args : arg list) ~endPos ~posBeforeCursor CArgument { functionContextPath = contextPath; - argumentLabel = Unlabelled {argumentPosition = 0}; + argumentLabel = + Unlabelled + {argumentPosition = (if isPipedExpr then 1 else 0)}; }; prefix = ""; nested = []; diff --git a/analysis/tests/src/CompletionExpressions.res b/analysis/tests/src/CompletionExpressions.res index cbd9aef1b..0fa6882cb 100644 --- a/analysis/tests/src/CompletionExpressions.res +++ b/analysis/tests/src/CompletionExpressions.res @@ -257,3 +257,8 @@ let fnTakingAsyncCallback = (cb: unit => promise) => { // fnTakingAsyncCallback() // ^com + +let arr = ["hello"] + +// arr->Belt.Array.map() +// ^com diff --git a/analysis/tests/src/expected/CompletionExpressions.res.txt b/analysis/tests/src/expected/CompletionExpressions.res.txt index e3363eb27..e08ef128e 100644 --- a/analysis/tests/src/expected/CompletionExpressions.res.txt +++ b/analysis/tests/src/expected/CompletionExpressions.res.txt @@ -1094,3 +1094,22 @@ Path fnTakingAsyncCallback "insertTextFormat": 2 }] +Complete src/CompletionExpressions.res 262:23 +posCursor:[262:23] posNoWhite:[262:22] Found expr:[262:3->262:24] +Completable: Cexpression CArgument Value[Belt, Array, map]($1) +Package opens Pervasives.JsxModules.place holder +Resolved opens 1 pervasives +ContextPath CArgument Value[Belt, Array, map]($1) +ContextPath Value[Belt, Array, map] +Path Belt.Array.map +[{ + "label": "v => {}", + "kind": 12, + "tags": [], + "detail": "'a => 'b", + "documentation": null, + "sortText": "A", + "insertText": "${1:v} => {$0}", + "insertTextFormat": 2 + }] + From 7deb9c92f26a58bfc008879c27c4ba3e9b3fec21 Mon Sep 17 00:00:00 2001 From: Gabriel Nordeborn Date: Mon, 11 Sep 2023 13:31:11 +0200 Subject: [PATCH 2/2] changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index be71a6f22..7330a9d7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ - Fix signature help in uncurried mode. https://github.com/rescript-lang/rescript-vscode/pull/809 - Fix various issues in uncurried mode. https://github.com/rescript-lang/rescript-vscode/pull/810 - Fixes a bug in pattern completion where for example `result` wouldn't complete, due to type variables getting lost/not being instantiated. https://github.com/rescript-lang/rescript-vscode/pull/814 +- Fix bug where pipes would not be considered in certain cases when completing for single unlabelled function arguments. https://github.com/rescript-lang/rescript-vscode/pull/818 ## 1.18.0