Giter Site home page Giter Site logo

glsl-language-server's People

Contributors

racz16 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Forkers

rocketlyz

glsl-language-server's Issues

Configure GitHub

  • Check and update the labels
  • Add milestone 0.1.0
  • Add issue templates
    • Check how other repositories define the templates
  • Update the CI pipeline
    • Add labels to the actions
    • Run Prettier
    • Run Markdownlint if it runs offline
    • Check why it runs twice sometimes
    • Check if it's a good idea to restrict it to 1 branch
    • Branch name should be main instead of master
    • Check how other repositories define the CI pipeline
    • Update Node.js from version 16
  • Add items to this project
  • Create the wiki
  • Check GitHub Settings
    • Add Codacy to the PR check
    • Check if it's useful to have Discuss
    • Check how other repositories are configured

Create a TextMate grammar file

  • Check if it's necessary to handle all versions and profiles differently
    • But there are things, we can't really handle, like target (OpenGL/Vulkan), or extensions
  • Check if it's necessary to handle shader stages differently
  • Add injection grammars to HTML, JavaScript, TypeScript, JSX, TSX, maybe to C and C++
  • Create the final grammar(s)

Add language configuration

Add declarative language configuration to the repository. While it's not part of the actual Language Server Protocol, different IDEs, like VS Code, or Visual Studio can use it, that's why it's in this repository.

Enhance static analysis tools

  • Add Prettier to the dev dependencies
  • Add Prettier scripts to package.json
  • Check if the pre-commit hook still works
  • Check if it's necessary to add a .prettierignore file
  • Check if Markdownlint is necessary
    • It's added to the recommended extensions and the default formatters
    • It's not added to the scripts
  • Update ESLint to the new version
    • It uses a different configuration format
  • Check if it's useful to add Codacy as an extension or as a script
  • Check if EditorConfig is useful
  • Check how other repositories use static analysis tools

Additional pipeline improvements

  • Add Codacy or something similar to the project
  • Create a git precommit hook with formatting
  • Add import organization on save or on format (remove unused imports and order the used ones)
  • Add formatting-specific workspace settings
  • Add badges
  • Merging the common parts of the web and the desktop server

Finish the diagnostic feature

  • Add the Linux and Mac versions of glslangValidator to the project
  • Probably a good idea to create a class to make sure don't share information between different invocations
  • Rewrite the output scraping with regex, similar to problem matchers
  • If possible, rewrite the execution to the async-await pattern
  • Make sure the diagnostics are updating after a file is changed and disappear after a file closed
  • Make sure it works with multiple files and with rapid changes
  • Make sure that outdated diagnostic informations don't stuck
  • Use the correct shader stage
  • Choose between the T[] and the Array<T> syntaxes
  • Use constant instead of \n or :
  • Check the client's capabilities
  • Make the diagnostic information range configurable: enable/disable, mark the whole line/part of the line, delay
  • Make sure it works with VS Code, Visual Studio, and doesn't break VS Code browser version
  • Update the readme

Enhance diagnostics

  • Make the code handle Vulkan target
    • const regex = /(?<severity>\w+)\s*:\s*(\d+|\w+)\s*:\s*(?<line>\d+)\s*:\s*'(?<snippet>.*)'\s*:\s*(?<description>.+)/;
  • Check if glslang is the best option and not shaderc
  • Choose between the pull and the push method
  • Check how workspace diagnostics work
  • Download the newest build of glslang
  • Rename both the files and the name to glslang, instead of glslangValidator
  • Try to get permission to run the compiler on MacOS and on Linux
  • Add a configuration to select a target (OpenGL/Vulkan)
  • Check how embedded code works with the Language Server Protocol
  • Check if there is an easy way to provide link-time errors
  • Check if there is an easy way to create a WebAssembly version of the compiler to make it work in the browser
  • Add \b to diagnostics

https://code.visualstudio.com/blogs/2023/06/05/vscode-wasm-wasi
https://code.visualstudio.com/blogs/2024/06/07/wasm-part2

Test if the CI pipeline works well with pull requests

  • Runs when there is a pull request
  • Reruns when there is an update to the pull request
  • Blocks the pull request when the building, the linting, or the testing fails
  • Doesn't block the pull request when the building, the linting, and the testing are successful
  • Doesn't run multiple times

Other improvements

  • Remove the mocked code completion
  • Update the readme file
  • Write the wiki

Enhance the build process

  • Check if Webpack is the best option or use Vite or ESBuild instead
  • Check if necessary to create 2 build configurations: 1 for development, and 1 for production mode
  • Create platform-specific executables in release mode
    • Choose between pgk, nexe, or other tools
  • The script vscode:prepublish should be build-production
  • Check if tasks.json is necessary
  • Check how other repositories handle the build process

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.