14 ms·
Why I wrote 33 VSCode extensions and how I manage them
- atljen 8y agoThis is awesome, great job!
- fabiospampinato 8y agoThank you!
- hnmonkey 8y agoAs someone that has used VSCode, thank you for the work and effort you've put into this. Extension creators often don't get the thanks they deserve for the labor they put into these things that they're passionate about and also help lots of people. Keep up the great work!
- alwaysreading 8y agoAgreed! So cool to see people maintaining tools that make life for the rest of us easier.
- wj 8y agoI agree as well. In a talk the creator of Asana said something along the lines of their goal is enabling others to do good and do so more effectively. Software is pretty amazing.
- fabiospampinato 8y agoThank you so much! If you want the authors of the tools you're using to feel more appreciated I can definitely tell you that every time somebody makes a nice review, or just says a few kind words, about a tool I've written it definitely improves my day :)
- azhenley 8y agoMy students next semester are going to each create a VS Code or Atom plug-in as their course project. I’ll definitely be showing them this!
- snek 8y agowhat if they prefer ecmacs or vim or sublime or etc, they all have plugin ecosystems as well
- azhenley 8y agoI can’t teach them all.
- gdfasfklshg4 8y agoBut why force your students to use a specific tool? How is this different to writing an Excel macro?
- guardian5x 8y agoYou can learn a lot from using a specific tool. And hopefully transfer that knowledge to the tool you like.
- gdfasfklshg4 8y agoI assume that the OP is teaching at University level. From experience I know that time is very limited in that environment. Everything done with the students should be well justified. Building an editor add on seems like something I would question strongly. What concepts is the OP aiming to introduce the students to? And is this the best way to introduce those concepts?
- azhenley 8y agoI want them to practice concepts behind designing, building, and evaluating usable dev tools. Not just reading about them. The course is a special topics on dev tools.
- stevebmark 8y agoI love VSCode, but the plugin system is probably its weakest feature. Opening any new file type and VSCode will say "we have an extension for this file type!" and then open the sidebar with 200 extensions with random vote counts, and you have no idea which ones are good, official, supported, or even suit your needs. And the in-editor documentation pages, and plugin hosted web pages, reek of Microsoft. It needs a major change, maybe like separating plugins into official ones, full IDE extensions, and simple commands.
- philliphaydon 8y agoCan you give me an example? I've only done .NET, HTML/CSS/JS, Vue, and go-lang, in VSCode, never had that happen. I only have installed Beautify, C#, Go, Git History, Vetur.
- dfee 8y agoSure. Rename a file with a .old extension, and voila: VS Code reports it has an extension for that.
- quickthrower2 8y agoI love that feature. Yes you need to use some savvy about who to trust. But I have had no problems with the plugins I have chosen, usually 5 stars means it works pretty well.
- benesch 8y agoI've had entirely the opposite experience. Have you ever tried to install a package in Sublime? You have to use a separate tool, Package Control, whose installation instructions are arcane: 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.
- commandlinefan 8y agoMy problem with adding plugins or extending my environment much past the default is that eventually I have to deal with a co-workers non-extended default installation. I end up relying too much on the add-ins.
- tokyodude 8y agoso in other words you always just use notepad or nano or some editor with almost no features so that you'll never miss missing features ?
- gnulinux 8y agoIs this assuming everyone else use vanilla nano or notepad?
- jsmeaton 8y agoDespite the tone, I totally agree with you. I strongly dislike the reasoning that suggests you should hamstring yourself 100% of the time to accomodate a potential situation that may affect you 5% of the time. “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.
- nickjj 8y agoAbout 7 or 8 years ago I used to optimize for the 5%. 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.
- commandlinefan 8y agoWell, I use IDE's these days, but I stick with the vanilla install. I shot myself in the foot with a highly customized Emacs environment a few times. But that's just me, I guess.
- no_wizard 8y agoIf I’m being completely honest I just see 33 reasons why I still use JetBrains IDEs. Every single one of these features is baked in with the exception of the templates for directory creation which isn’t user configurable most of the time however in the few cases it isn’t baked in they also have a rich plugin ecosystem 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
- hartator 8y agoYou have a way to auto-create changelogs in JetBrains?
- makepanic 8y agoIf one uses a specification for defining changes, then you can easily generate changelogs regardless of IDE/editors. e.g. https://www.conventionalcommits.org/en/v1.0.0-beta.2/ 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 https://github.com/conventional-changelog/standard-version
- Bishonen88 8y agoDo you know if there's a plugin for the 'bump' thing, as described in the article?
- markmark 8y agoSome would argue VSCode can be lighter because these 33 things aren't baked in for those who don't want them.
- Bishonen88 8y agoYou can disable most of the plugins in the jetbrain suite, too.
- the_other_guy 8y agogreat job! Moz :D
- fabiospampinato 8y agoThank you fellow AirMash player ;)
- tumblen 8y agoSo happy to know I'm not the only one playing Airmash who isn't in high school!
- Insanity 8y agoReally nice of him to spend time on OSS tools for VSCode. On the other hand, I feel like the IDEs lugins can do most of these things for me without plugins. 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.
- fabiospampinato 8y agoThe flip side of this is that an editor that relies on plugins for many features is kind of forced to have good APIs, or plugins authors wouldn't/couldn't make those plugins.
- Insanity 8y agoThat's a good side-effect indeed! 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).
- tutuca 8y agoSo, you basically gamed the reputation system of the vscode marketplace having autocomits and autoupdates because any update counts as a download?
- fabiospampinato 8y agoI'm just pointing at a problem, not exploiting it. I made a program for repeating my commits across repositories for being more productive, but those commits have a purpose, I'm not making them for the sake of it. Should I update my extensions once a year because the Marketplace is stupid?