Skip to content

Latest commit

 

History

History
194 lines (120 loc) · 10.1 KB

CHANGELOG.md

File metadata and controls

194 lines (120 loc) · 10.1 KB

HEAD (unreleased)

2.0.0

  • Changed: No longer supports EOL versions of Ruby. (#210)
  • Added: Support prism parser (#208).
  • Added: Handle Ruby 3.3 new eval source location format (#200).

1.1.0

  • Handle if/else with comment or empty line in branch (#193)
  • Use SYNTAX_SUGGEST_DEBUG instead of DEBUG env var value in timeout warning message (#194)
  • Reduce line output for increased clarity (#190)

1.0.4

  • Fix rendering a file without a newline ending (#182)

1.0.3

  • Output improvement: Handle methods with only newlines or comments in them (#179)
  • No longer shows the detail of monkey patch as the document (#174)
  • Drop CI for Ruby 3.2.0-rc1, now that 3.2.0 is available (#172)

1.0.2

  • Drop support for Ruby 3.2.0 preview, now that 3.2.0-rc1 is available (#165)
  • Native support of SyntaxError#path, support 3.2.0-preview3 will be dropped with the release of 3.2.0-preview4 (#164)
  • Added dependabot for GitHub Actions (#160)

1.0.1

  • Replace with > in error output for compatability with more fonts (#161)

1.0.0 (Library renamed to syntax_suggest )

  • [Breaking] Output "Syntax OK" will no longer be output when syntax_suggest is fired due to a syntax error. (#158)
  • [Breaking] Rename dead_end to syntax_suggest (#154)
  • [Breaking] Lazy loading moved from autoload to manually checking for constants and requiring dead_end/api. To manually use any SyntaxSuggest internals you MUST require dead_end/api, otherwise it will be lazy loaded on syntax error (#148)
  • Default to highlighted output on Ruby 3.2 (#150)
  • Debug functionality enabled by DEBUG=1 env var is now under SYNTAX_SUGGEST_DEBUG=1. Note this is not a stable interface or feature. Output content is subject to change without major version change (#149)
  • Enable/Disable dead_end by using the dead_end kwarg in detailed_message (#147)
  • Respect highlight kwarg in Ruby 3.2's detailed_message to enable/disable control characters (#147)
  • Added workarounds for running on ruby/ruby repo (#156)

dead_end 4.0.0

  • Code that does not have an associated file (eval and streamed) no longer produce a warning saying that the file could not be found. To produce a warning with these code types run with DEBUG=1 environment variable. (#143)
  • [Breaking] Lazy load SyntaxSuggest internals only if there is a Syntax error. Use require "dead_end"; require "dead_end/api" to load eagerly all internals. Otherwise require "dead_end" will set up an autoload for the first time the SyntaxSuggest module is used in code. This should only happen on a syntax error. (#142)
  • Monkeypatch SyntaxError#detailed_message in Ruby 3.2+ instead of require, load, and require_relative (#139)

dead_end 3.1.2

  • Fixed internal class AroundBlockScan, minor changes in outputs (#131)

dead_end 3.1.1

  • Fix case where Ripper lexing identified incorrect code as a keyword (#122)

dead_end 3.1.0

  • Add support for Ruby 3.1 by updating require_relative logic (#120)
  • Requiring dead_end/auto is now deprecated please require dead_end instead (#119)
  • Requiring dead_end/api now loads code without monkeypatching core extensions (#119)
  • The interface SyntaxSuggest.handle_error is declared public and stable (#119)

dead_end 3.0.3

  • Expand explanations coming from additional Ripper errors (#117)
  • Fix explanation involving shorthand syntax for literals like %w[] and %Q{} (#116)

dead_end 3.0.2

  • Fix windows filename detection (#114)
  • Update links on readme and code of conduct (#107)

dead_end 3.0.1

  • Fix CLI parsing when flags come before filename (#102)

dead_end 3.0.0

  • [Breaking] CLI now outputs to STDOUT instead of STDERR (#98)
  • [Breaking] Remove previously deprecated require "dead_end/fyi" interface (#94)
  • Fix double output bug (#99)
  • Fix bug causing poor results (fix #95, fix #88) (#96)
  • SyntaxSuggest is now fired on EVERY syntax error (#94)
  • Output format changes:
    • Parse errors emitted per-block rather than for the whole document (#94)
    • The "banner" is now based on lexical analysis rather than parser regex (fix #68, fix #87) (#96)

dead_end 2.0.2

  • Don't print terminal color codes when output is not tty (#91)

dead_end 2.0.1

  • Reintroduce Ruby 2.5 support (#90)
  • Support naked braces/brackets/parens, invert labels on banner (#89)
  • Handle mismatched end when using rescue without begin (#83)
  • CLI returns non-zero exit code when syntax error is found (#86)
  • Let -v respond with gem version instead of 'unknown' (#82)

dead_end 2.0.0

  • Support "endless" oneline method definitions for Ruby 3+ (#80)
  • Reduce timeout to 1 second (#79)
  • Logically consecutive lines (such as chained methods are now joined) (#78)
  • Output improvement for cases where the only line is an single end (#78)

dead_end 1.2.0

dead_end 1.1.7

  • Fix sinatra support for require_relative (#63)

dead_end 1.1.6

  • Consider if syntax error caused an unexpected variable instead of end (#58)

dead_end 1.1.5

  • Parse error once and not twice if there's more than one available (#57)

dead_end 1.1.4

  • Avoid including demo gif in built gem (#53)

dead_end 1.1.3

  • Add compatibility with zeitwerk (#52)

dead_end 1.1.2

  • Namespace Kernel method aliases (#51)

dead_end 1.1.1

  • Safer NoMethodError annotation (#48)

dead_end 1.1.0

  • Annotate NoMethodError in non-production environments (#46)
  • Do not count trailing if/unless as a keyword (#44)

dead_end 1.0.2

  • Fix bug where empty lines were interpreted to have a zero indentation (#39)
  • Better results when missing "end" comes at the end of a capturing block (such as a class or module definition) (#32)

dead_end 1.0.1

  • Fix performance issue when evaluating multiple block combinations (#35)

dead_end 1.0.0

  • Gem name changed from syntax_search to dead_end (#30)
  • Moved syntax_search/auto behavior to top level require (#30)
  • Error banner now indicates when missing a | or } in addition to end (#29)
  • Trailing slashes are now handled (joined) before the code search (#28)

dead_end 0.2.0

  • Simplify large file output so minimal context around the invalid section is shown (#26)
  • Block expansion is now lexically aware of keywords (def/do/end etc.) (#24)
  • Fix bug where not all of a source is lexed which is used in heredoc detection/removal (#23)

dead_end 0.1.5

  • Strip out heredocs in documents first (#19)

dead_end 0.1.4

  • Parser gem replaced with Ripper (#17)

dead_end 0.1.3

  • Internal refactor (#13)

dead_end 0.1.2

  • Codeblocks in output are now indented with 4 spaces and "code fences" are removed (#11)
  • "Unmatched end" and "missing end" not generate different error text instructions (#10)

dead_end 0.1.1

  • Fire search on both unexpected end-of-input and unexected end (#8)

dead_end 0.1.0

  • Initial release