Coder Social home page Coder Social logo

makeup_erlang's Issues

Tabs are interpreted as errors

The Erlang code in this OTP doc page has tabs in it that are being interpreted and rendered as errors.

https://www.erlang.org/doc/system/erl_interface.html

Screenshot 2024-07-17 at 11 58 43โ€ฏAM

Not sure if this repo is where this is actually happening, but making an issue to keep track of it. Assuming that since it's Erlang code and exdoc that the error is here.

Looks like the problem occurs in the lexer, \s is used but not sure what that is in this context - confusion with regex? and \t is missing.

https://github.com/elixir-makeup/makeup_erlang/blob/master/lib/makeup/lexers/erlang_lexer.ex#L17

I'll make a PR.

Create a release of this package in Hex

When we get to a point where we can use this package to highlight erlang code in ex_doc, we should create a release of this package in Hex as to not include the dependency straight from github.

MatchError when trying to lex some unicode emojis

iex(1)> Makeup.highlight("fun($๐Ÿซ‚ ) -> ok.", lexer: Makeup.Lexers.ErlangLexer)
** (MatchError) no match of right hand side value: {:ok, [{:whitespace, %{language: :erlang}, "\n"}, {:name_function, %{language: :erlang}, "fun"}, {:punctuation, %{language: :erlang}, "("}, {:string_char, %{language: :erlang}, ["$", 240]}], <<159, 171, 130, 32, 41, 32, 45, 62, 32, 111, 107, 46>>, %{}, {2, 1}, 7}
    (makeup_erlang 0.1.5) lib/makeup/lexers/erlang_lexer.ex:442: Makeup.Lexers.ErlangLexer.lex/2
    (makeup 1.1.1) lib/makeup.ex:37: Makeup.highlight/2
    iex:1: (file)

Handle `$num>` prompt

Erlang prompt by default is 1> , 2> , etc. Let's make it unselectable, similarly to how iex> is treated.

Please clarify and add license

The license is stated as "BSD" in mix.exs. Anyhow, there are many different versions of this the BSD license. Which one excly is it?

Warning when compiling

I get the following when compiling:

warning: Application.get_env/3 is discouraged in the module body, use Application.compile_env/3 instead
Warning:   lib/makeup/lexers/erlang_lexer.ex:250: Makeup.Lexers.ErlangLexer

Improvements

Couple improvements that I think would be nice to do (referencend from this comment).

Improvements

  • Highlight the module in a function call module:function() (example)
  • Improve the module attribute combinator to handle specs -spec function(type()) -> type(). (example)
  • Add a combinator for record like syntax #record{attribute = value} (example)

Maybe improvements?

(Things I would like to discuss)

  • Have a combinator for function names function/0?
  • Highlight attributes (binary, bitstring, number of bytes) in binary pattern match <<"string", Rest/binary>>? (I'm pretty ok with the way it is)

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.