leodevbro / vscode-blockman

VSCode extension to highlight nested code blocks
https://github.com/leodevbro/vscode-blockman
MIT License
465 stars 17 forks source link

Blockman doesn't work with in line code suggestions from other extensions #125

Open Mixchild opened 11 months ago

Mixchild commented 11 months ago

image Codeium Blackbox and tabnine have in line code suggestions and Blockman has no awareness of it, is there a setting that can fix that or can it be patched in future

leodevbro commented 11 months ago

Well, unfortunately it is the limitation of VS Code itself (at least as I understand it), because VS Code does not give extensions access to exact pixel sizes and coordinates of any block or character or bracket or lines or anything. So blockman just renders div boxes on each line in such a way that these line-line-line-line boxes touch each other perfectly, so we have visual illusion of one big block. So, Blockman is not able to know if there are some extra space between line 1 and line 2.

Blockman does not know even the height of the line, or even the width of one character. It just uses CSS tricks to render blocks with correct size. by CSS tricks, I mean: ch and height: 100%.

Mixchild commented 11 months ago

Thanks Mr Leo for replay, I wish more Georgians in this country would start working on dev experience extensions after the success of your app. I have made research about this and vscode has CodeLens settings (font size and etc) so would it be possible for blockman to take CodeLens placement into consideration

leodevbro commented 11 months ago

Thank you for the good wishes.

vscode has CodeLens settings (font size and etc) so would it be possible for blockman to take CodeLens placement into consideration

Well, I found something in the VS Code extension API.

const possiblyCodelensItemsArr: any[] | undefined = await vscode.commands.executeCommand(
    "vscode.executeCodeLensProvider",
    editorInfo.editorRef.document.uri,
);

console.log('possiblyCodelensItemsArr:', possiblyCodelensItemsArr);

This code possibly gives us the locations (line numbers) of all CodeLens items in any document. I'll try to test it, but even if I have all the locations of these codelens items, it seems still a quite difficult (if not impossible) task to add the logic code into the Blockman extension to consider those locations and render extra space there. Because VS Code has many limitations (and/or difficulties) of where you can render blocks.

Mixchild commented 11 months ago

Is there Google meetings or discord server for devs in Georgia to discuss such topics? please feel free to message me about it, if codelens settings could be connected to general settings of extensions, it won't be too hard to fix the issue, but truth be told vs code should have done something about this long time ago

leodevbro commented 11 months ago

Is there Google meetings or discord server for devs in Georgia to discuss such topics?

I know some Georgian Facebook groups: JavaScript Georgia https://www.facebook.com/groups/1450497911907139

Georgian Web & Mobile Development Industry https://www.facebook.com/groups/georgian.development

Georgian Web Developers • ქართველი ვებ დეველოპერები https://www.facebook.com/groups/georgianwebdevelopers

We often discuss many things in those groups.

codelens

Yeah, I'm going to try to fix this issue soon (with the VS Code extension API method I mentioned in the previous comment)

Mixchild commented 11 months ago

image well this is interesting, https://nextjs.org/docs/app/building-your-application/routing Seems like blockman inspired next js development, facebook is the only tools you would use to discuss related topics?

leodevbro commented 11 months ago

Nice NextJS Docs, maybe it is really inspired by Blockman, but it's hard to say, because, I guess blockifying a code is very natural way to help the viewer/reader focus on certain areas.

Georgian devs mostly use facebook to discuss some topics with each other as fellow citizens, but we also communicate with other devs worldwide on Reddit, Quora, Twitter (now X), Github, Stackoverflow, Slack, Discord and more.

Mixchild commented 11 months ago

As I understand you prefer NextJS (or React) over VUE and NUXT (or Vite) , don't you think in future NextJS will implement all those functions (including blockman features) in their own devtools , I'm not using nextjs so not sure if those functions are part of their React Server Components and they will become the regular partsof advanced devtools in future but Nuxt is way advanced with DX compared to Next. If you have discord would be great to add you there.

leodevbro commented 11 months ago

don't you think in future NextJS will implement all those functions (including blockman features) in their own devtools

I don't have enough knowledge to answer this question. And for Blockman, I don't think so, I don't know how NextJS would implement Blockman features.

If you have discord would be great to add you there.

I do have Discord account (leodevbro), but I don't use it much. Discord feels to have too much information overload with so many channels (chats) with mostly unimportant messages.

leodevbro commented 8 months ago

Hello @Mixchild, Blockman now supports codeLens annotation spaces, well, at least some of the cases. Maybe not all edge cases. Please test it and let me know whether is works fine (fine enough, if not perfectly) or not. The new version of Blockman is v1.7.6 (2024-02-01).

image

Mixchild commented 7 months ago

Yes it works flawlessly, thank you so much for integrating this functions, any plans upcoming features? if there is any chat for developers or some other community please feel free to add me for future discussions

leodevbro commented 7 months ago

any plans upcoming features

I hope I will be able to implement SVG rendering instead of div rendering, because SVG path element does not have the limitation of not being able to set transparent (and partially transparent) gradients for both backgrounds and borders. Also SVG has some more freedom of generating shapes.

if there is any chat for developers or some other community please feel free to add me for future discussions

Mostly this is the community place for Blockman. 1] this Guthub Blockman issues space: https://github.com/leodevbro/vscode-blockman/issues

2] this Guthub Blockman discussions space: https://github.com/leodevbro/vscode-blockman/discussions

3] Also anyone can reach me on Facebook and Reddit: Facebook: https://www.facebook.com/leodevbro

Reddit: https://www.reddit.com/user/leodevbro/

.

Mixchild commented 7 months ago

Sounds great and I want to ask specifically about glowing functionality cause every extension and theme that promises that feature to VSCode basically breaks the software so I guess until microsoft doesn't update from back end this won't be possible. I hope to work together with a visionary person like you one day at Georgian or international company.

leodevbro commented 7 months ago

Yeah, glowing effect may be problematic, but I guess will have more chances if we manage to implement SVG rendering instead of primitive div boxes.

I hope to work together with a visionary person like you one day at Georgian or international company.

Thanks, that would be cool for sure. Enthusiastic people like you can do great things with technology.

Mixchild commented 4 months ago

@leodevbro my friend wants to remove extension and reset color changes back to default can we help him