-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Experimental project structure #773
Experimental project structure #773
Commits on Jan 4, 2023
-
Experimental project structure
This commit represents a new structure for the experimental project, and a path forward. With these changes the project now has: * A build option enabling the experimental server * Per-message routing for the experimental server. If enabled, it can either share messages with the existing server or take them over. Presently, the find references and formatting providers are implemented and "exclusive", meaning that they're handled solely by the experimental server * A consistent interface for building providers. * A consistent way to convert lsp messages into data structures and back again. This conversion is handled automatically for providers. * A genserver-like interface for providers to implement * Data structures representing LSP messages that are simple to define and build. * Fast and efficient conversion between utf8 and utf16. * A separation between what a provider does and how it responds to messages. This allows the work that underpins providers to be tested independently from the language server.
Configuration menu - View commit details
-
Copy full SHA for 7f6a8b3 - Browse repository at this point
Copy the full SHA 7f6a8b3View commit details -
Created a code action that prepends an underscore to unused variable names.
Configuration menu - View commit details
-
Copy full SHA for 74be499 - Browse repository at this point
Copy the full SHA 74be499View commit details -
Configuration menu - View commit details
-
Copy full SHA for fa469a3 - Browse repository at this point
Copy the full SHA fa469a3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4fb8068 - Browse repository at this point
Copy the full SHA 4fb8068View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8fecb83 - Browse repository at this point
Copy the full SHA 8fecb83View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2145c24 - Browse repository at this point
Copy the full SHA 2145c24View commit details -
Configuration menu - View commit details
-
Copy full SHA for e4b7ee4 - Browse repository at this point
Copy the full SHA e4b7ee4View commit details -
Configuration menu - View commit details
-
Copy full SHA for d46d342 - Browse repository at this point
Copy the full SHA d46d342View commit details -
First attempt at a standard interface for code modification. Code mod modules take the original text, the ast of the original text and arguments that they specify. They return a list of code edits or an error.
Configuration menu - View commit details
-
Copy full SHA for 77f415e - Browse repository at this point
Copy the full SHA 77f415eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2b04d83 - Browse repository at this point
Copy the full SHA 2b04d83View commit details -
Fixed off-by-one error that was vexing code unit conversions.
The problem was that the character positions are _before_ the reported unit, so the 0th code unit is before the start of the line and the 1st code unit is the first character. The prior code added one to character counts to smooth this out, but you can't do that, because you could end up indexing into the middle of a multibyte character.
Configuration menu - View commit details
-
Copy full SHA for a185b00 - Browse repository at this point
Copy the full SHA a185b00View commit details -
The code action needs to fix up the line numbers
Code mods deal with snippets of code that need to have their line numbers fixed up by the code actions.
Configuration menu - View commit details
-
Copy full SHA for d04d93c - Browse repository at this point
Copy the full SHA d04d93cView commit details -
The AST type is very complicated, and dialyzer was telling us I got it wrong.
Configuration menu - View commit details
-
Copy full SHA for 302ebc9 - Browse repository at this point
Copy the full SHA 302ebc9View commit details -
While working on the automatic protocol generators, it became clear that type aliases needed to be their own thing, as they operate quite differently from the other defined things in the jsonrpc protocol. Since they're just aliases, it makes sense to keep their definitions on hand and then spit them out when other things make use of them during encode and decode. This did require going back to encoding and ensuring all the encode functions return OK tuples.
Configuration menu - View commit details
-
Copy full SHA for 840caeb - Browse repository at this point
Copy the full SHA 840caebView commit details -
When patches are unapplied, getting the beam file returned an empty path charlist, which dialyzer assumed was a real file name due to a weak assumption, which caused unit tests to fail. This was remedied by checking for a non-empty charlist, which allows tests to succeed. Also made patch a test only dependency for .formatter.exs, as this was causing formatters to fail.
Configuration menu - View commit details
-
Copy full SHA for b53ac91 - Browse repository at this point
Copy the full SHA b53ac91View commit details
Commits on Jan 5, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 7fde975 - Browse repository at this point
Copy the full SHA 7fde975View commit details
Commits on Jan 19, 2023
-
Added sourceror to ease ast to string conversion
Under 1.12, Macro.to_string proudces wonky output, making `def` calls look like function calls by adding needless parenthesis. These parenthesis throw off the diff algorithm, and caused an off-by-one error in the code mod. Sourceror has backported the newer code generation so that it's compatible all the way back to 1.10, and produces the correct output.
Configuration menu - View commit details
-
Copy full SHA for 07a4be8 - Browse repository at this point
Copy the full SHA 07a4be8View commit details -
Added patch as a dev dependency
Patch's assertions will fail in CI due to `mix format --check-formatted` running in dev. Importing patch's deps in test will fix this.
Configuration menu - View commit details
-
Copy full SHA for b23a87d - Browse repository at this point
Copy the full SHA b23a87dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6c8e9d8 - Browse repository at this point
Copy the full SHA 6c8e9d8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 32f9fff - Browse repository at this point
Copy the full SHA 32f9fffView commit details
Commits on Jan 20, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f33cb19 - Browse repository at this point
Copy the full SHA f33cb19View commit details