{"id":29791144,"url":"https://github.com/diyaayay/processing-language-server-extension","last_synced_at":"2026-04-17T05:03:23.200Z","repository":{"id":248126337,"uuid":"827826380","full_name":"diyaayay/processing-language-server-extension","owner":"diyaayay","description":"An LSP Extension for Processing","archived":false,"fork":false,"pushed_at":"2024-10-31T07:07:33.000Z","size":137584,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"Development","last_synced_at":"2025-07-28T00:23:32.904Z","etag":null,"topics":["language-server-protocol","processing","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=DiyaSolanki.processing-language-server-extension","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diyaayay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-07-12T13:09:10.000Z","updated_at":"2025-01-30T18:35:56.000Z","dependencies_parsed_at":"2024-10-30T19:36:16.451Z","dependency_job_id":null,"html_url":"https://github.com/diyaayay/processing-language-server-extension","commit_stats":null,"previous_names":["diyaayay/processing-language-server-extension"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/diyaayay/processing-language-server-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diyaayay%2Fprocessing-language-server-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diyaayay%2Fprocessing-language-server-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diyaayay%2Fprocessing-language-server-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diyaayay%2Fprocessing-language-server-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diyaayay","download_url":"https://codeload.github.com/diyaayay/processing-language-server-extension/tar.gz/refs/heads/Development","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diyaayay%2Fprocessing-language-server-extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31915900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["language-server-protocol","processing","vscode-extension"],"created_at":"2025-07-28T00:15:11.214Z","updated_at":"2026-04-17T05:03:23.168Z","avatar_url":"https://github.com/diyaayay.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Processing Language Server - VSCode Extension\n\n![LSP for Processing](https://img.shields.io/badge/Language%20Server-LS4P-blue?style=flat-square)\n\u003c!-- ![Port](https://img.shields.io/badge/Port%20Number-6009-green?style=flat-square)\u003cbr /\u003e --\u003e\n\u003c!-- [![Build Status](https://img.shields.io/github/actions/workflow/status/yourusername/ls4p/build.yml?branch=main)](https://github.com/yourusername/ls4p/actions) --\u003e\n\n# Description\n\nThis project is an LSP extension that enables writing and running Processing sketches on Windows. It involves running Processing in headless mode along with a client-server JSON-RPC connection for LSP features. Both running sketches and LSP features have been tested on Windows, while LSP features have also been tested on Linux.\n\n\u003e[!NOTE]  \n\u003eThe full feature set of this LSP extension is currently compatible only with **Windows**. For more information, go to the [Limitations](#limitations) section. \n\n## Run the extension in Windows \n- Download and install the dependencies:\n\t- Ensure `python \u003e=3` is installed on your machine,\n[here](https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe).\n\t- [Download openJDK](https://github.com/alexkasko/openjdk-unofficial-builds#openjdk-unofficial-installers-for-windows-linux-and-mac-os-x), and make sure it is added to your system's environment variables.\n- Download the Extension from [processing-language-server-extension](https://marketplace.visualstudio.com/items?itemName=DiyaSolanki.processing-language-server-extension)\n- Create a sketch file within a sketch directory that shares the same name as the directory. You can create a sketchbook containing multiple sketch directories to run multiple sketches simultaneously.\n- Click the run button in the top-right corner to execute a sketch.\n\n## Tutorial\n![](./assets/fileicons/demo.gif)\n\n\u003c!-- \n### SketchBook --\u003e\n\u003c!-- ![](./assets/fileicons/sketchbook.png) --\u003e\n\n\n\n\n\u003c!-- ## Capabilitites:\n\n### On-Hover description\n![](./assets/fileicons/hover.gif)\n\n### Go-To-Definition\n![](./assets/fileicons/gotoDef.gif)\n\n### Go-To-References\n![](./assets/fileicons/gotoref.gif)\n\n### Code-Completion\n![](./assets//fileicons/2024-09-16%2018-06-18.gif)\n\n### Linux distribution\n![](./assets//fileicons/image.png) --\u003e\n\n## Features\n- On-Hover descriptions\n- Syntax Highlighting\n- Go-To-Definition\n- Go-To-References\n- Code Completion\n- Running sketches\n- Sketch error detection\n\n## Installation\n\n- [Node.js](https://nodejs.org/) (version 18 or higher)\n- [npm](https://www.npmjs.com/)\n\n\n## Build Instructions\n\n```sh\ngit clone --branch Development https://github.com/diyaayay/processing-language-server-extension.git\ncd processing-language-server-extension/\nRun the script dependency.bat through any terminal (e.g., in Windows Powershell, run .\\dependency.bat)\nnpm install\nnpm run watch\n```\n\nThis project is currently under development. The default development branch is `Development`. To test, create a sketch directory. The sketch must exist in a directory with the same name as the sketch file itself (e.g., Sketch101/Sketch101.pde).\n\n\u003cbr\u003e\n\n\u003e [!NOTE]\n\u003e - If you run into any errors while installing, make sure you have `python \u003e=3` installed on your machine,\n[Download Python](https://www.python.org/ftp/python/3.13.0/python-3.13.0-amd64.exe).\n\u003e - If you run into any errors while installing, make sure you have `openJdk 7` installed for the node modules dependency \n`npm i java`. Refer to the following link to download it: [Download openJDK](https://github.com/alexkasko/openjdk-unofficial-builds#openjdk-unofficial-installers-for-windows-linux-and-mac-os-x), and it should be added to your system's environment variables.\n\n## Limitations\n\n- The LSP features work cross-platform, but sketch execution is currently limited to **Windows** due to the specific [symlink](https://doc.rust-lang.org/std/os/unix/fs/fn.symlink.html) setup for the Windows distribution.\n- The large size of the extension is due to custom dependencies downloaded via the `dependency.bat` script. The [dependency.zip](https://github.com/diyaayay/processing-language-server-extension/releases/download/v1.2/dependency.zip) contains the Processing distribution for Windows, which is extracted into `jre/deps`.\n- This limitation is due to the extension's JSON-RPC architecture, which enables client-server communication for IntelliSense features. A layered structure was established to connect the protocol, server, client, extension, and Processing distribution, using symlinks to package Processing and execute sketches from the sketch runner.\n- Future development could use similar setups for other platforms to expand compatibility.\n\n## Contributors\n\nThis Project was developed as a part of the 2024 New Beginnings (pr05) Grant from the [Processing Foundation](https://github.com/processing), aimed at creating a Language Server Protocol (LSP) extension for Processing sketches (.pde) and enabling sketch execution within VSCode. The project was mentored by [Sam Lavigne](https://github.com/antiboredom) and advised by [Justin Gitlin](https://github.com/cacheflowe).\n\nIt is based and inspired by a number of prior work:\n- Luke Zhang's [Processing VSCode plugin](https://github.com/Luke-zhang-04/processing-vscode) forked from Avin Zarlez' earlier plugin.\n- [Processing Language Server](https://github.com/kgtkr/processing-language-server-vscode) VSCode by kgtkr.\n-  [Processing Language Server](https://github.com/Efratror/LS4P) (LS4P) by Efratror based on earlier work by Syam Sundar Kirubakaran.\n- [LS4PDE](https://github.com/pr1metine/ls4pde) by Thanh aka pr1metine.\n\nI would like to express my gratitude to the developers of the prior work, my mentors, and my fellow open-source contributor friends who have continuously supported and helped me along the way.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiyaayay%2Fprocessing-language-server-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiyaayay%2Fprocessing-language-server-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiyaayay%2Fprocessing-language-server-extension/lists"}