Inicio Extensión para Visual Studio Code
Post
Cancel

Extensión para Visual Studio Code

¿Qué es una extensión de VS Code?

Las extensiones nos permiten agregar funcionalidad a Visual Studio Code de forma modular y aislada, son una excelente manera de personalizar nuestra experiencia con la herramienta.

Prerequisitos

Visual Studio Code es un editor multiplataforma, por lo que, las herramientas que necesitamos para la creación de extensiones pueden conseguirse en Mac, Linux y obviamente, Windows.

Creación de una extensión en VS Code

Referencia: https://code.visualstudio.com/api/get-started/your-first-extension

  • Asegúrese de tener Node.js y Git instalados, luego instale Yeoman y VS Code Extension Generator con:
1
npm install -g yo generator-code
  • El generador construye un proyecto de TypeScript o JavaScript listo para el desarrollo. Ejecute el generador y complete algunos campos para un proyecto de TypeScript:
1
yo code

Generador de Extensiones para VS CodeVSCodeextensiongen

  • Luego, dentro del editor, presiona F5. Esto compilará y ejecutará la extensión en una nueva ventana del host de desarrollo de extensiones.

  • Ejecutar el comando Hello World desde la paleta de comandos (Ctrl+Shift+P) en la nueva ventana.

  • package.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
  "name": "buscar-google",
  "displayName": "Buscar Google",
  "description": "Extension sencilla para buscar en google.com",
  "author": "Jaime Guevara",
  "version": "0.0.1",
  "engines": {
    "vscode": "^1.80.0"
  },
  "categories": [
    "Other"
  ],
  "activationEvents": [],
  "main": "./extension.js",
  "contributes": {
    "commands": [{
      "command": "buscar-google.buscarGoogle",
      "title": "Buscar en Google..."
    }]
  },
  "scripts": {
    "lint": "eslint .",
    "pretest": "npm run lint",
    "test": "node ./test/runTest.js"
  },
  "devDependencies": {
    "@types/vscode": "^1.80.0",
    "@types/glob": "^8.1.0",
    "@types/mocha": "^10.0.1",
    "@types/node": "20.2.5",
    "eslint": "^8.41.0",
    "glob": "^8.1.0",
    "mocha": "^10.2.0",
    "typescript": "^5.1.3",
    "@vscode/test-electron": "^2.3.2"
  }
}

extension.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const vscode = require('vscode');

function activate(context) {
	let disposable = vscode.commands.registerCommand('buscar-google.buscarGoogle', async function () {
		const busqueda = await vscode.window.showInputBox({
			value: '',
			title: 'Buscar en Google',
			placeHolder: 'Que necesitas buscar?',
			validateInput: (value) => {
				if (value === '') return 'Busqueda vacia'
			}
		})

		if (!busqueda) return

		vscode.env.openExternal(
			vscode.Uri.parse(`https://www.google.com/search?q=${busqueda}`)
		)
	});

	context.subscriptions.push(disposable);
}

function deactivate() { }

module.exports = {
	activate,
	deactivate
}
This post is licensed under CC BY 4.0 by the author.