snibbets 2.0.17 → 2.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e89ca24c47d946572565c20c19ab3c14c80b60d88874d871a74975478efd8a34
4
- data.tar.gz: 66996bcf10f8f7d6bd0d879f150f94fe1c6b07b812f5aad27797a96ed9aa1cbd
3
+ metadata.gz: c0317bfeaf37247a0bcb128127a4b5f93022826c4a926684561585ff03b806b2
4
+ data.tar.gz: 76bf63ed29f6948539bc5ebface580fdbc2d4934e5a3e287746fe4f556e3cb7a
5
5
  SHA512:
6
- metadata.gz: 676d63c79f5278dc7ca5edd8dcf68a0136b2ef26864c087b35c8fb595cf8b0150218691569a1d28b3d92ca4eecc581549cefb6c4b67d52fed00c164c1130c91b
7
- data.tar.gz: dd83ac848efd7510c0aff692b802662610c6df5a8e245292478e8f39a2677ff8a11c747ac384f4a9c3a6544c6658b397207f5ef234dd470e58a095567a2eb7ee
6
+ metadata.gz: 250da1aaebe3ccf91dddf3c6d296c3d2864d77d9959b7cccd065cab58e2deeb27b05ed1bc018d6b42a01c9456f621b2f759368b2d7ec814aa4f7bc989255b8bc
7
+ data.tar.gz: ea0c220d5415ca2c0717e5602cda7602db28740c889013cfa2d00f70441ed98153d769bab74deced677da0b30b322951237d85dab5b65eac2b93bffd4d5d6afa
data/CHANGELOG.md.orig CHANGED
@@ -1,3 +1,20 @@
1
+ ### 2.0.19
2
+
3
+ 2023-04-16 08:05
4
+
5
+ #### FIXED
6
+
7
+ - A fenced code block following a line containing only 4+ spaces or tabs would get parsed as an indented code block
8
+ - Last fenced code block in a snippet might not be recognized
9
+
10
+ ### 2.0.18
11
+
12
+ 2023-04-16 06:57
13
+
14
+ #### FIXED
15
+
16
+ - If an invalid language (without a lexer) is supplied when using `--paste`, just use the input as the extension and tag
17
+
1
18
  ### 2.0.17
2
19
 
3
20
  2023-04-16 06:31
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- snibbets (2.0.17)
4
+ snibbets (2.0.19)
5
5
  tty-which (~> 0.5, >= 0.5.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -155,7 +155,7 @@ Snibbet's implementation of Skylighting has limited but better-looking themes, a
155
155
  ### Usage
156
156
 
157
157
  ```
158
- Snibbets v2.0.17
158
+ Snibbets v2.0.19
159
159
 
160
160
  Usage: snibbets [options] query
161
161
  -a, --all If a file contains multiple snippets, output all of them (no menu)
@@ -29,12 +29,12 @@ module Snibbets
29
29
 
30
30
  def ext_to_lang(ext)
31
31
  matches = lexers.select { |lex| lex[:extensions].map(&:downcase).include?(ext.downcase) }
32
- matches.map { |lex| lex[:lexer] }.first
32
+ matches.map { |lex| lex[:lexer] }.first || ext
33
33
  end
34
34
 
35
35
  def lang_to_ext(lexer)
36
36
  matches = lexers.select { |lex| lex[:lexer] == lexer || lex[:aliases].map(&:downcase).include?(lexer.downcase) }
37
- matches.map { |lex| lex[:extensions].first }.first
37
+ matches.map { |lex| lex[:extensions].first }.first || lexer
38
38
  end
39
39
 
40
40
  def syntax_from_extension(filename)
@@ -117,7 +117,7 @@ module Snibbets
117
117
  end
118
118
  end
119
119
 
120
- sans_blocks = sans_blocks.gsub(/^(`{3,})(\s*\w+)?\s*\n(.*?)\n\1/m) do
120
+ sans_blocks = sans_blocks.gsub(/(?mi)^(`{3,})( *\w+)? *\n([\s\S]*?)\n\1 *(\n|\Z)/) do
121
121
  counter += 1
122
122
  lang = Regexp.last_match(2)
123
123
  lang = "<lang:#{lang.strip}>\n" if lang
@@ -125,12 +125,11 @@ module Snibbets
125
125
  "<block#{counter}>\n"
126
126
  end
127
127
 
128
- sans_blocks = sans_blocks.gsub(/(?mi)^((?:\s{4,}|\t+)\S[\S\s]*?)(?=\n\S|\Z)/) do
128
+ sans_blocks = sans_blocks.gsub(/(?mi)^((?: {4,}|\t+)\S[\S\s]*?)(?=\n\S|\Z)/) do
129
129
  counter += 1
130
130
  code = Regexp.last_match(1).split(/\n/)
131
131
 
132
132
  code_blocks["block#{counter}"] = code.join("\n").outdent
133
-
134
133
  "<block#{counter}>\n"
135
134
  end
136
135
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Snibbets
4
- VERSION = '2.0.17'
4
+ VERSION = '2.0.19'
5
5
  end
data/lib/snibbets.rb CHANGED
@@ -157,8 +157,10 @@ module Snibbets
157
157
  printf 'What language(s) does it use (separate with spaces, full names or file extensions will work)? '
158
158
  input = $stdin.gets.chomp
159
159
  langs = input.split(/ +/).map(&:strip) unless input.empty?
160
- exts = langs.map { |lang| Lexers.lang_to_ext(lang) }
161
- tags = langs.map { |lang| Lexers.ext_to_lang(lang) }.concat(langs).sort.uniq
160
+ exts = langs.map { |lang| Lexers.lang_to_ext(lang) }.delete_if(&:nil?)
161
+ tags = langs.map { |lang| Lexers.ext_to_lang(lang) }.concat(langs).delete_if(&:nil?).sort.uniq
162
+
163
+ exts = langs if exts.empty?
162
164
 
163
165
  filename = "#{title}.#{exts.join('.')}.#{Snibbets.options[:extension]}"
164
166
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snibbets
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.17
4
+ version: 2.0.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra