[TxMt] Re: [LaTeX Bundle] New command for numprint
Alex Ross
j at lasersox.net
Wed Nov 18 00:00:27 UTC 2009
On Nov 15, 2009, at 2:22 AM, Alain Matthes wrote:
> Hi
>
> I'm not an expert with Ruby so I need to know if the next command is safe
>
> I want to select a "number" and to get $\numprint{number}$ if number is not empty
> and number is not inside a math environment
> or
> \numprint{number} if number is inside a math environment.
>
> then
> if number is empty, I want to get \numprint{...} or $\numprint{...}$
>
> I made this and I would like to know if this code is correct
>
> #!/usr/bin/ruby
> # Created by Alain Matthes on 2009-11-15 (www.altermundus.com).
>
> require ENV["TM_SUPPORT_PATH"] + "/lib/exit_codes.rb"
>
> if ENV['TM_SELECTED_TEXT'].nil?
> input = ENV['']
> else
> input = ENV['TM_SELECTED_TEXT']
> end
>
> if ENV['TM_SCOPE'].match(/math.((.*)|(la))tex/)
> $math_del = ""
> else
> $math_del = "\\$"
> end
>
> TextMate.exit_insert_snippet("#{$math_del}\\numprint{#{input}$0}#{$math_del}")
>
>
> Is it possible to use a shortcut to go out of the first environment {...} and then to go out
> of the math environment because the caret is inside {number} ?
Hey Alain,
Your code looks safe. I'm not sure what you meant by safe, but I'm quite sure this won't hurt anything.
I simplified it a little bit, and added the features you wanted:
> #!/usr/bin/ruby
> # Created by Alain Matthes on 2009-11-15 (www.altermundus.com).
> # Some simplification by Alex Ross (http://lasersox.net)
>
> snippet = "\\numprint{${1:#{$stdin.read || "..."}}}$2"
> snippet = "\\$#{snippet}\\$$0" unless ENV['TM_SCOPE'].match(/math/)
>
> puts snippet
Set Input: Selected Text or Nothing
Output: Insert as Snippet
More information about the textmate
mailing list