Open Tyriar opened 8 years ago
+1
https://github.com/zokugun/vscode-explicit-folding does work. Here's what we are wishing for: The "Fold last line" to be a GLOBAL setting in VisualStudio that could override extension settings. That's all. :-)
Another year past. Is there any LIFE on the VSCODE planet? I'll go buy IntellyJ IDE finally, can't wait next 3 years to your wake up, guys... Yea give me more dislikes, I will be continue adding one comment per year anyway )))
Thank you to those who recommended explicit-folding, fixes the problem to a sufficient degree. Unfortunate that the VSCode team decided to support the horrendous indentation-based rubbish languages instead of focusing on support for languages with stronger, more versatile syntax. Hopefully they'll come around to it eventually, but for now, again, grateful for the recommendations and explanations on use of explicit-folding.
Is there any willingness to merge a user configurable editor.foldEndPatttern: RegExp
, similar to #9605 ?
If so, i can open one.
@aminroosta Maybe open a new issue to describe your suggestion in detail and discuss the proposal.
Update: created #111731 not to clog this thread.
I was using vscode-explicit-folding as described above to successfully mitigate this issue, however the new release of that extension broke this functionality. Reverting the extension to 0.9.0 locally successfully resolved my issue.
vscode-explicit-folding doesnt work for me :(
Thanks to the help of @sleepylemur, I was able to fix vscode-explicit-folding for your case. It was very simple mistake (a misread)...
The 0.9.2
is already available and is fixing the issue mentioned by @michael-lumley.
It might be useful for some. I've added the setting editor.showFoldingLastLine
to my custom VSCode (MrCode)
It determines if the last line of the folding range is shown or not.
@daiyam the download this link shows git 404 for me
@GaddMaster oops It's fixed. Thx
+1 for this feature, except also noting that this is actually two features (as summarized by @aeschli above, here and here):
For 1, I'll say +1 for vscode-explicit-folding. (Thanks @daiyam 😊). It does appear to work at least for me in JS so far, though it requires some configuration. For 2... well... aeschli is saying "no plans to implement this" and so, ok, so be it. Not that big a deal if at least 1 works.
I found this issue only after posting my own #121556. I've made comments on that issue to point it here. Posting this comment here in case it helps anyone else looking for this functionality - to mention the solution that's working for me so far (essentially confirming others above saying similar).
vscode-explicit-folding is great. I think this does the trick
"[javascript]": {
"explicitFolding.rules": [
{
"begin": "{/*",
"end": "*/}"
}
]
},
For my case, I want to turn this
it('some test 1', async () => {
...
});
it('some test 2', async () => {
...
});
into this
it('some test 1', async () => {})
it('some test 2', async () => {})
This is the code I use
"[javascript]": {
"explicitFolding.rules": [
{
"separator": "it(",
}
]
},
Then just add your favorite shortcut for folding the desired level (3 in my case, with a describe surrounding block)
So, it's an unsolved issue since 2016, and here I opened a StackOverflow question, thinking that it's possible. https://stackoverflow.com/questions/68227011/finish-code-folding-in-one-line-and-keep-folding-sign-visible-all-the-time
also having the same need. would like for blocks to collapse to a single line
I have similar need to work on Powershell.
+1 for collapse of ending to same line and also show number of lines folded
visual studio have this feature, and true is give nice intuitive reading flow +1 for productivity because we save time for reading fast !
@djmisterjon how did you do this?
@TresAbhi The screenshot is from Microsoft Visual Studio and not from Visual Studio Code...
I wish I could fold to a single line as suggested. Currently that last curly brace just takes up an extra line with no apparent benefit.
I did some testing and it seems that the code folding is strictly based on indentation. So there is one workaround which is no too ugly (though reduces code readability and clarity). Specifically put the end curly brace on same line as code as in:
function myfun() {
this='that'
console.log(that)
}
Notice the single space before closing curly brace. This ends up folding to:
function myfun() { ...
I'd still really like to have normal indentation and have the curly brace show up in the folded variant as in:
function myfun() { ... }
Please consider raising priority of this ticket.
btw: due to face that code folding is based on indentation, you need to avoid invalid indentation (i.e. sometimes I add comment for code I intend to delete at start of line in order to make it obvious and easy to find - that totally breaks code folding.
@stevemcmillen: Code folding can be based on one of two things: (1) indentation (2) language specific rules. It is set in the settings with editor.foldingStrategy, to either "indentation" or "auto" (auto = language specific rules).
Or in the settings UI:
That, arguably makes this issue a little more complicated than you're suggesting, however I still agree that it should be a higher priority than it seems to be.
Every decent IDE does this. I for one don't understand why it's apparently so difficult and not a priority for VSCode -- well other than the fact that the VSCode devs are devs like us, and as with any dev project, we juggle priorities based on many factors, including demand, ease/difficulty of implementation, and others.
Presumably if this thread grows and more people are +1-ing it, then that's increased "demand" and will hopefully push it up.
After my comment above, I feel a need to add the following:
There's a number of requests here, and maybe this should be broken out into a few separate "issues"...?
Recap:
I think that's everything. If anyone thinks I missed anything please feel free to let me know.
To the VSCode devs (@joaomoreno ?, @aeschli ?): The explicit-folding extension gets some of this right -- without having access to internal code. You guys did a pretty good job with bracket pair colorization, improving on and acknowledging CoenraadS's work. Is there anything significant stopping you from doing the same with daiyam's?**.
And it's not like you have to do it all at once. Is there anything stopping you at least implementing natively what daiyam has done, and then adding to it bit by bit over time from there?
I understand your point about it being up to the language extension providers, so ok... what about the language extensions provided with VSCode/by Microsoft (JS, TS, C++, to name a few)? Please correct me if I've misunderstood the connection between VSCode and those extensions. If not you guys, who do we talk to about those particular languages?
( ** @daiyam I seem to recall you stating you'd be happy for them to do that, but can't find where I saw that. Please correct me if I'm wrong).
In our XML Language Server we decide to support this issue, but it provides this bug https://github.com/redhat-developer/vscode-xml/issues/690#issue-1189157838
In other words, if you have this XML:
<note>
<foo>
bla bla bla
</foo>
</note>
and you fold the root note
, and you select (without Ctrl+A) the <note>
and you type space, it doesn't remove the whole content and teh XML becomes an invalid XML:
<foo>
bla bla bla
</foo>
</note>
In Eclipse IDE, it solves the problem by opening the fold, when you try to update it.
@angelozerr I think your issue is different from the original issue. You should open a new one.
@angelozerr I think your issue is different from the original issue. You should open a new one.
I would like to highlight a problem with the "Collapse ending brace to the same line" issue but if you think it's better to create a new issue, I can do that.
Explicit Folding extension does the trick.
But while I was reading this thread.
As @aeschli mentioned:
Since a while we allow extensions to contribute folding range providers. If none is present we fall back to indentation based folding ranges.
I checked it in .js file for this piece of code (}
is aligned to return
for this test)
if (folding) {
return;
}
And it turned out that it folds differently based on editor.foldingStrategy
. It folds to
if (folding) { ...
}
For auto
, and to
if (folding) { ...
For indentation
This could mean that, unlike in the past, now indentation-based stategy is not the only one VS Code has, and there is already some bracket-based or language-specific strategies under the hood, or indentation-based add-ons that weren't thought of as a possibility before. In any case, it looks like there is now room for the code that can solve the issue.
r
not work at all for me
Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:
https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding
A demo of the extension in action:
Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:
https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding
A demo of the extension in action:
Screen.Recording.2023-01-23.at.11.29.10.mov
My Hero !!
Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:
https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding
A demo of the extension in action:
Screen.Recording.2023-01-23.at.11.29.10.mov
Cool stuff! But I have one problem, folding stops working in html
Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here: https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding A demo of the extension in action: Screen.Recording.2023-01-23.at.11.29.10.mov
Cool stuff! But I have one problem, folding stops working in html
HTML, JSX and TSX support coming soon. You can see the full list here
HTML, JSX and TSX support coming soon. You can see the full list here
This is great! Thanks a lot. I'm looking forward to it.
Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:
https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding
A demo of the extension in action:
Screen.Recording.2023-01-23.at.11.29.10.mov
Thanks man, I was waiting for it for a long time.
Thanks for your hard work, the folding extension is fantastic!
Hey everyone, I managed to make an extension that solves this problem along with other many requested folding-related issues. You can find it here:
https://marketplace.visualstudio.com/items?itemName=MohammadBaqer.better-folding
A demo of the extension in action:
Screen.Recording.2023-01-23.at.11.29.10.mov
Mate, you are a bloody legend!
It still shows the closing bracket for me. Didn't change any settings.
@mtbaqer 's extension "Better Folding" works great! Until you restart vscode. Then it reverts to the default behavior.
Immediately after installation:
After restarting vscode:
Consider a large JavaScript file
Collapsing all currently yields:
This would be more readable if the closing brace was on the same line:
Here is how other prominent editors handle the above:
Atom
Brackets
Sublime Text 3
VS Code