Elixir: rearranged-before-merge PR for #2024 - #2034
Merged
masatake merged 9 commits intoMar 7, 2019
Merged
Conversation
Imported from https://github.com/mmorearty/elixir-ctags. Close universal-ctags#1758. See also mmorearty/elixir-ctags#5. The change from the original .ctags. * Put the original LICENSE file as the header of the .ctags. * Use --map= option instead of --langmap because optlib2c doesn't handle --langmap option. * Define kinds explicitly with --kinddef-<LANG> option. * Remove backslashes before double quotes chars in the regex pattern for "test". * Use singular forms for kind names. TODO: Test cases for above kinds are needed. c callbacks (defcallback ...) d delegates (defdelegate ...) e exceptions (defexception ...) i implementations (defimpl ...) a macros (defmacro ...) o operators (e.g. "defmacro a <<< b") p protocols (defprotocol...) r records (defrecord...)
I already made a pull request with *detailed commits* to the upstream of the elixir.ctags parser. Said pull request and commits can be found in mmorearty/elixir-ctags#8 This parser is missing basically two things which are annotated in the input.ex test with a TODO keyword, plus an explanation of _why_ they're missing. Said missing features are listed bellow: * exceptions: I don't know how to identificate or differenciate exceptions from one another because they do not have a name. Instead, they resemble an struct. For example, if I have: ``` defmodule MyAppError1 do defexception [:message] # code end defmodule MyAppError2 do defexception [:message] # code end ``` How would/should ctags differenciate between these two exceptions? * word-defined logical operators (`and, or, not`): The elixir parser in this commit already has the regex atom including these logical operators, but since the regex engine used by universal-ctags does not have lookahead, I couldn't think of a way to add them or negate them. The test for them is commented in, for the time someone is brave enough to add them.
(The commit log is edited by @masatake.)
More info on the bugs can be found in the test cases' `README.md`.
Moved that comment to the README.md of a bugged test case in the Elixir directory.
Fixes the bug where the parser wouldn't correctly generate tags for the 'word' operators (and, or, not, etc...)
This was referenced Mar 7, 2019
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rearranged-before-merge PR for #2024.
Some commits are reordered and squashed to make all commits pass "make units".
As a result, the commits don't introduce noise to future git-bisects we will run.