Are suggested extensions computed locally or remotely? - visual-studio-code

I noticed today that VSCode is recommending plugins to me based on what applications I have installed locally.
For instance, if I hover over the recommended Sublime Text Keymapper, it tells me it is recommending it because I have Sublime Text installed.
Does anyone know if the matching between my installed apps and available extensions is done locally, or if the list of known installed apps is sent to a server somewhere?

It's local. Here's the code for it: https://github.com/Microsoft/vscode/blob/2b251d6e5ebefc2acdc6e73aae92ac2339b4984b/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts#L734
The non oss build just ships with a static mapping of executables names to extensions

Related

Visual Studio Code inside Company network

Is there a standard way to handle Visual Studio Code inside a company network, in which VS Code is not allowed to contact the Internet?
For e.g. Eclipse, we can host our own update sites for plugins and can package pre-configured versions of the IDE for the developers.
Is there something similar for VS Code?
There are two ways (I know of) how you can provide pre-configured VSCode-installations
A) VSCode inside a Docker container. You'll have a minimal standard installation of VSCode on your computer, all plugins and settings come with the Docker image that is loaded into your local VSCode installation. See docs here: https://code.visualstudio.com/docs/remote/containers
B) VSCode web. This is a zero-installation version of VSCode which is running in the web browser. See docs here: https://code.visualstudio.com/docs/editor/vscode-web You can try it on GitHub: open any repo and change .com in the domain to .dev

How to run VSCode on Centos6

My company is using an old CentOS6 and they wont update it before months (years?). This is totally out of my control and it obviously makes using up to date software a nightmare.
I would like to use Visual Studio Code as a C++ IDE but its intellisense plugin is running with glibc >=2.14 and Centos6 comes with glibc 2.12.
It also needed some more dependencies I managed to recompile and load with LD_LIBRARY_PATH. I tried compiling a new glibc and load it as well but it segfault, as expected.
I used the compiled version of VSCode from the official website.
I tried compiling it myself but it requires to download many files and my virtual machine does not have Internet, I can only transfer files through ftp. I created a local yarn repository, compiled all appropriate version of Yarn, NodeJS but a compiled binary is trying to download electron and I have no idea where to put the file to trick him into thinking it's downloaded already (assuming I could).
There are standalone solutions to run software on old distribution, like AppImage but VSCode is not part of their apps.
Would you have any idea on how to run VSCode on Centos6? Did you ever try to compile VSCode without and Internet Connection?
Currently the only viable solution I see would be to create an AppImage at home.
To run VS Code Server on CentOS 6, I followed the "glibc and libstdc ++ on RHEL / CentOS 6 update" article from here.
Perhaps this option will help you.

Full featured language plugins for Eclipse Orion

I read that Eclipse Che uses Eclipse Orion as its code editor but, while multiple languages seem to be supported in Che, such information for Orion seem to be quite outdated and only JavaScript and other webdev seem to be supported. So:
Like Che, does Eclipse Orion also have editor plugins for
Java
Python
C/C++
and do those plugins have features like
(a) Syntax highlighting
(b) Code completion
(c) Error detection and smart suggestions
(d) Rename refactoring...?
PS1: For my EC2, I could have used Che, but all I want is only its browser IDE without docker containers etc. Besides, running Che on EC2 apparently requires some ephemeral ports to be opened to the world because of docker etc.
PS2: Cloud9 would have worked but it doesnt have SSH access for free version.
Eclipse Orion does not have language tooling for Java, Python or C/C++. Only syntax highlighting is implemented for those languages.

NetBeans remote editing for Java projects?

My project makes use of the Play! framework, so I don't need an editor that can compile. I generally like NetBeans, but would like to remote edit source files on the server to save time. I also often switch between my desktop/netbook for development, so remote editing would save me from syncing a dev environment.
All my searches for remote editing for Netbeans suggest that it's available for PHP projects, but I don't see anything for Java projects. If Netbeans doesn't support remote editing for Java projects, is there an IDE that does?
Edit: I develop on Windows but the server runs Linux.
You don't mention your operating system, but there are solutions for Windows where you can make a FTP server appear as a regular drive in Windows. That way you can use any editor/IDE you like regardless whether that supports FTP access or not.
A quick search diggs up this:
http://www.ghacks.net/2006/08/03/how-to-mount-an-ftp-drive-in-windows/

Deployment of NPAPI plugin with minimal user steps

Situation: I've already written an ActiveX control for my IE users which works perfectly. I build the .ocx, CAB it up, sign it, and put it on the site with an EMBED tag. Users load the page, the yellow bar shows up asking if they want to install it: all they have to do is click it, and we're off.
Now I need to build support for FF, Chrome, and Safari (on Mac). From my research, NPAPI is the way to do this, and Firebreath is supposed to make it easier. But from what I have read, deployment is not so easy. Windows users would have to run "regsvr32" on a DLL (which none of my web users would actually do). I have no idea what would happen on a Mac. I believe the user has to copy it to a directory like /Library/Internet\ Plugins/, which is also a non-starter for deployment. Firefox users would download/run an .xpi. Chrome is supposed to run a .crx.
Does anyone out there have experience with this? How do you do a easy-for-users-to-run deployment of an NPAPI plugin for the other big 3 browsers?
This is a question that is raised a lot by FireBreath users, so it's probably about time I responded in more detail on a forum that is easier to find than the project google group.
First of all, to clear up the regsvr32 thing, FireBreath does indeed support "self registering" for all browsers; that means when you call regsvr32 it installs registry keys not just for IE but also for NPAPI browsers using the methods linked to by DReJ (+1 for that info, btw, thanks. Many don't know where to find it).
However, self-registering DLLs is highly discouraged in the installer world and by Microsoft. There are a lot of reasons for this. You've done a pretty good job of summarizing the other install options in your post; You can use a .cab on IE and a .XPI on firefox, but of course those don't help you on other browsers.
The method recommended by the FireBreath team (which I lead) is to use an MSI installer for all browsers. Personally, I dislike having things work differently on different browsers for an install, so I use javascript to detect the presence (or absence) of the plugin and then prompt the user to download and run the MSI installer.
FireBreath has "built-in" support for building MSI installers with WiX. If you install WiX 3.0 or later on your machine and re-run the prep script it will create a _WiXInstaller project that will build a basic MSI to install your plugin for all browsers as part of the Visual Studio build process. You can modify the .wxs template that will be left in your home directory to customize it.
More info can be found on the FireBreath wiki:
http://www.firebreath.org/display/documentation/WiX+Installer+Help
http://www.firebreath.org/display/~me#iaincollins.com/Potential+Installer+Improvements
If you are really in love with using your .cab installer for IE (I've had problems with them, but some seem to have good luck with them) you can distribute the MSI file inside your CAB and have it run when the CAB is installed. The advantage to this is that when you install the MSI it installs everything for IE, Firefox, Safari, Chrome, and Opera (as well as other browsers which are compatible with the same plugin technologies that those browsers use).
As a quick note, the reason that an MSI is the ideal solution for installing plugins (as opposed to using something that calls DllRegisterServer like regsvr32) is that the MSI is transaction based, so when you uninstall it will always reverse what was put in; that means that you don't have to worry about supporting uninstalling 10 different old installer versions that put things in different places, etc, because the MSI system takes care of uninstalling everything cleanly when you upgrade.
Hope that helps!
For NPAPI plugin you shouldn't run "regsvr32", in Windows you need to write some stuff to the register and on Mac or Linux you need to copy the plugin to specified locations (see "Installing Plug-ins"). I think the easiest way to deploy NPAPI plugin on Windows is to create windows installer that will install both activeX and NPAPI versions of the plugin (for example, you can look how deployment is done for commercial plugins like Unity3D, Roozz or Silverlight). The same is for Mac - just create installer.
I'm not aware of any way to install a plugin from within Safari.
Also, keep in mind that while you may think of the extension-style deployment as easier for users, it's not all that uncommon for Mac users to use more than one browser. If you make them re-install your plugin in each browser they will be confused (since that's not how browser plugins are generally deployed on the Mac) and annoyed. An installer or a manual drag-and-drop installation are the standard ways of deploying plugins on the Mac.