Why I wrote 33 VSCode extensions and how I manage them
medium.com
medium.com
Keep up the great work!
I only have installed Beautify, C#, Go, Git History, Vetur.
import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
And once it's installed interaction is limited to the textual omnimenu-thing, since Sublime's extension API is extremely limited. Package Control is awesome for what it is, but it's severely constrained by not being a first-class feature of the UI.In VSCode, by contrast, there's a proper UI for extension installation that's part of the core product. Clicking on the extension brings up a full-viewport window with the README and quick links to the reviews and GitHub. I've had a lot of luck finding quality extensions by installing the official Microsoft extension, if one exists, or otherwise using number of downloads/reviews/GitHub activity as a rough proxy for quality.
JetBrains IDEs have a very similar extension installation experience to VSCode (i.e., good), but I've anecdotally found the available JetBrains extensions to be lower quality than their analogous VSCode extensions. For example, I _still_ can't find a good comment-wrapping plugin for JetBrains—everything I've tried has some weird deficiency, like not being able to wrap comments at a different column than the code width, or sometimes butchering surrounding code, etc.
I'll admit that the one frustration I have with VSCode is that there is no way, at least not that I've found, to export your entire configuration, both settings and plugins, and use that to bootstrap a new VSCode installation. I recently set up a new computer and spent the first few weeks rediscovering all the extensions I'd installed on my old computer.
I'm curious to know if there's an editor/IDE that you think has a far superior plugin experience than VSCode.
https://marketplace.visualstudio.com/items?itemName=Shan.cod...
I've used this with success, but in the end I found my settings / plugins are minimal so I don't bother with it now. I have like 4 settings and 5 plugins.
> You have to use a separate tool, Package Control, whose installation instructions are arcane:
It's been a long time since that command is not necessary anymore.
You just click an option in the menu and it installs “Package Control” by itself.
Here's the proof — https://i.imgur.com/edxKQ7T.png
It's probably not actually true but I've often felt the people working on the VSCode UI are guided by the core principle of 'it has to be less infuriating than Sublime'. They are very good at this.
You can define workspace plugins in `.vscode/settings.json` and make extensions recommended for a project by putting them in `.vscode/extensions.json`. Hope this helps!
Not since the last 5 years or so, where it's built-in to ST.
There was absolutely no reason to use ST3 for the past 3 years if you already used ST/ST2.
That was already the case for ST2, which was stable for years before it officially announced it was "stable".
Stable/unstable for STx are just labels, they don't actually reflect the state of stability. Plus all the real work (new plugins, etc) happened on the "beta" ST3 side for years...
What does this even mean?
- extensions.showRecommendationsOnlyOnDemand
- extensions.ignoreRecommendations
"200 extensions with random vote counts" is what you get when there is an engaged community. Would you rather MS told you which extensions they think you should use?
Actually yes. Unopinionated systems leave me too much choice, and lead to a fragmented community.
One practical example are keyboard shortcuts. With VSCode I'm never too sure if I used the right ones, or if some plugin is messing with them... Where as for Jetbrains IDEs I'm certain that code formatting is Ctrl+Alt+L and I could tell other people that ask me.
Most people don't want to fiddle with loads of plugins to fit their personal sensitivities.
Most people want simple and robust software that just works.
Editors like emacs and vim where getting plugins installed involves just as much of a scattered forest of different options with varying levels of quality and support, only the installation process is more manual. Also Eclipse fits here.
IntelliJ or Visual Studio, which have great support for their primary languages, and plugin ecosystems that taper off very quickly (in terms of both quantity and quality) compared to vscode. Also, all your RAM are belong to us.
Single-language IDEs like PyCharm or Flash Builder.
"extensions.ignoreRecommendations": true
which will turn off these notifications. Thank you for prompting to do so. I often prefer to find and install extensions when I get the itch, rather than have a popup ask me.There's a setting for disabling that, arguably these sort of annoyances should be easier to eliminate though.
IMHO the plugins per-se are one of VSCode's strengths, you can find plenty of high-quality ones, and the APIs are good enough that making your own is overall a pleasant experience. What sucks is the Marketplace [1]: 1. searching is basically broken 2. the downloads count, and therefor the ranking system, is skewed towards extensions publishing lots of updates.
Still worthy the money every time. I have to say though VS Code is still one of the best free editors you can get
None the less. Mad props! I think it’s great that they have a rich extension ecosystem
e.g. https://www.conventionalcommits.org/en/v1.0.0-beta.2/ has implementations[1] that generate changelogs and bump package versions.
[1] - https://github.com/conventional-changelog/standard-version
Jetbrains IDEs and lightweight in the same sentence. Notepad++ and Sublime Text are lightweight, Jetbrains IDEs are not...
I only use it because of the top class Kotlin support (figures, given JetBrains created it).
I end up regularly toggling Power Save mode on and off to reduce how much my CPU gets blown up. That mode turns off code suggestion, auto-imports, and error detection among other pretty core things.
“I don’t use multiple monitors because sometimes I’m just with a laptop”.
“I don’t customise my shell because sometimes I have to ssh to a server”
“I don’t customise my editor because sometimes I have to use a coworkers editor”.
Optimise for the 90%+ of time.
I remember thinking exactly what you wrote about customizing your shell. Back then I wouldn't even use aliases because "what if the server I'm on doesn't have it". Such a silly way of thinking but it made so much sense back then.
Now I have tons of customizations in the environment I spend 95% of my time and it's way better.
How is this different to writing an Excel macro?
Python vs PHP vs JavaScript would be another matter. I would say it doesn't matter so much which of those you teach. Same with e.g. Java vs C# vs C++.
The question remains why build an Atom plugin over an Excel macro? And what underlying concepts would you hope to teach students by doing this? And is this the best way to introduce those concepts?
Why teach C++? Some students might not prefer that to C#.
My problem at school was always "how do I apply this lesson to an actual problem?" Picking _something_ (anything!) to teach is great (to me), because canny students can go off and use the lesson to do _anything_ else.
Between these two there is very little to choose in terms of concepts the students would be exposed to. I would assume that teaching either of those would aim to teach the underlying concepts of object orientated programming.
The questions that need to be asked instead are: What concepts would building an editor plugin expose students too? And is this the best way to introduce those concepts? (NB I am assuming University level where contact time for taught material is only really enough to introduce concepts not to really go into details.)
One class can't teach everything. If people have preferences in their tooling, then that's a great opportunity to generalize the lessons they are taught about VS Code.
https://github.com/brackets-userland/brackets-git/pull/1039
If people are wanting to contribute to OSS i highly recommend finding plugins in your favourite editor to contribute to.
I hope it isn't for a CS class. They should be learning principles rather than creating toy plug-ins which is something anyone can do for a hobby if they wanted.
But I would agree that if someone uses something else like vim or emacs as their primary editor, they should have the option of writing a plugin for their editor of choice. (As long as they accept that the rest of the class will be taught how to write Atom/VS Code extensions and they'll have to do most of the learning on their own.)
I feel less need to install plugins for their products. And the one plugin that I use in IntelliJ is something I wrote for fun and which doesn't help at all with development. (It shows a random XKCD comic each time I open a new project.)
But it's nice that there is a free IDE available with a rich ecosystem! As a student, I had to deal with Eclipse / Netbeans which seems to me to have been a worse experience than VSCode is these days.
EDIT: fixed some typos.
I found it quite easy for IntelliJ as well though. (At work we develop some in-house ones as well though they are for specific use cases).