Hola comunidad. Hoy voy a hablarles un poquito sobre este maravilloso editor de código y sobre todo les voy a dar un metodo para obtener la ruta para descargar la última versión de sus extensiones.

Desde hace un tiempo Microsoft nos ha venido sorprendiendo con la cantidad de proyectos que ha ido abriendo y los espacios que está creando para desarrollar su comunidad de desarrolladores. Parte de este esfuerzo fue la creación de Visual Studio Code (con un nombre un poco largo para mi gusto). Al principio para ser honesto no me gustó mucho. Las primeras versiones para mi gusto no estaban a la altura de lo que esperaba después de tanto rumor, pero con el tiempo ha ido mejorando considerablemente y con una comunidad de desarrolladores que crece por día tanto el editor como el ecosistema de plugins que ha ido creciendo a su alrededor han alcanzado una madurez considerable. La versión actual (1.10.2) me ha dejado una muy buena impresión por su versatilidad, organización, simpleza y ligereza por lo que la recomiendo sobre todo para los usuarios que estén comenzando a trabajar en Python por ejemplo. (Las descargas pueden encontrarlas aquí)

El problema con este tipo de productos extensible es que los plugins hay que descargarlos de Internet, normalmente utilizando la misma aplicación, lo cual para el cubano común que pasa la mayor parte de su tiempo desconectado es un contratiempo de los grandes. Lo bueno en este punto de Visual Studio Code es que las extensiones pueden ser descargadas manualmente para luego ser instaladas en la aplicación, pero al menos hasta el momento no hay una forma explícita en la página de la extensión que nos lleve a un enlace de descarga.

Instalar Extensión desde Archivo

Por suerte ya alguien se había preocupado por esto y según varias fuentes las URL siguen un formato específico por lo que la mayoría de los usuarios para descargar utilizan algo como:

https://+autor+.gallery.vsassets.io/_apis/public/gallery/publisher/+autor+/extension/+nombre+/+versión+/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage

Donde podemos  ver que sólo necesitamos el nombre del autor, el nombre del paquete y la versión del mismo para obtener la URL de descarga.

Los dos priemros datos los podemos descubrir fácilmente en la misma dirección de la página de la extensión sin tener que llegar siquiera a abrir la misma, pero la versión se encuentra justo dentro y no queremos ir extensión por extensión buscando este dato, así que hice un pequeño script en #Python al cual le damos la URL de la página de nuestra extensión (para la extensión de #Python por ejemplo https://marketplace.visualstudio.com/items?itemName=donjayamanne.python) o el nombre del autor (donjayamanne) y el de la extensión (python) y el devuelve la URL de descarga de la extensión.

Sin más preámbulos aquí les dejo el script que también pueden encontrar aquí (todos los aportes son bienvenidos):

#!/usr/bin/env python3

import re
import requests

url = input('url (dejar vacío para especificar nombre y autor): ')
if url == '':
    author = input('autor: ')
    name = input('nombre: ')
    url = 'https://marketplace.visualstudio.com/items?itemName='+author+'.'+name
else:
    data = url.replace('https://marketplace.visualstudio.com/items?itemName=','').split('.')
    author = data[0]
    name = ''.join(data[1:])
print('calculando versión...')
r = requests.get(url)
version = re.findall('"version":"(.*?)"',r.text)[0]
ruta = 'https://'+author+'.gallery.vsassets.io/_apis/public/gallery/publisher/'+author+'/extension/'+name+'/'+version+'/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage'
print('Ruta para '+author+'.'+name+':'+version+' --> '+ruta)
print('Nombre propuesto: '+author+'.'+name+'_'+version+'.vsix')

Espero que les halla resultado interesante. Tengan todos un excelente día y Happy Hacking!!!