Talk:TextMate

From Wiki
Revision as of 20:24, 5 February 2008 by Patrick Gundlach (talk | contribs) (First answers)
Jump to navigation Jump to search

Feature requests and fixes

(so that the do not get lost before integrating them into the bundle) --Mojca 02:55, 28 January 2008 (CET)


inclusions for lua (as for metafun)

support more engines (--lua) and other preferences

See

Bundles -> LaTeX -> Preferences

or

Latex.tmbundle/Support/bin/texMate.py

(hmmm ... it even supports texexec :)

(check how LaTeX does different things through menus)

implement metafun syntax & autocomplete

autocomplete

Try

<a[alt+esc]

on HTML and implement the same for ConTeXt (try to figure out how to implement that with less S-es).

add texshow's help

Parse XML (or some other form) natively, without the need for web version (or both) and display html window.

[opt+R] on projects

Any chance to compile the main file when the file starts with \component?

scroll down in the log window automatically

and blink or something if compilation fails

add support for automatic open after [opt]+R

add support for a different ConTeXt tree

document creation of autocomplete scripts

weird tab completions

How does one use this one?

\date ${1:[${2:...,...=...,...}]}[${3:...,...,...}]
$4

Also, it would be nice to:

  • be able do completion as
\definesomething
    [...]
    [...]
  • use sensible names instead of dots where possible (maybe misusing italic is possible)
\externalfigure [file][...,...=...,...]
  • have the endings:
\stopsomething

for example (cloned from HTML):

#!/usr/bin/env ruby

doc        = STDIN.read
line       = ENV['TM_LINE_NUMBER'].to_i
line_index = ENV['TM_LINE_INDEX'].to_i

if ENV.has_key? 'TM_INPUT_START_LINE' then
  line       = ENV['TM_INPUT_START_LINE'].to_i
  line_index = ENV['TM_INPUT_START_LINE_INDEX'].to_i
end

before = /(.*\n){#{line-1}}.{#{line_index}}/.match(doc)[0]

#before.gsub!(/<[^>]+\/\s*>/i, '')

# remove all comments
before.gsub!(/[%].*/, '')

stack = [ ]
before.scan(/\\(start|stop)([a-zA-Z]+)/) do |m|
  if m[0] == 'start' then
    stack << m[1]
  else
    until stack.empty? do
      close_tag = stack.pop
      # print ">>#{close_tag}"
      break if close_tag == m[1]
    end
  end
end

if stack.empty? then
  %x{ osascript -e beep &>/dev/null & }
else
  print "\\stop#{stack.pop}"
end

disable smart typing \& comments after backslash

clone from LaTeX bundle (maybe it could be simply inherited yrom TeX somehow?)

more possibilities for tab-completion

when there are optional parameters, offer all of them for tab-completion and offer their descriptions (see how it's implemented in CSS)

Unicode bundle

  • browse (by name/description/code) and insert unicode glyphs
  • help about the character under cursor

Graphical

Is it possible to have a graphical menu with math symbols for example?

Won't fix

(comments by Patrick)

refresh viewer

Can't get this to work on my machine (tiger, power pc, german ui)

improve this code & import it into open link:

pdf=${TM_FILEPATH%tex}pdf

PDFFILE=echo "${pdf}" | sed -e 's/.[^.]*$/.pdf/'
PDFBASENAME=basename ${PDFFILE}

echo "
tell application \"System Events\"
 if exists process \"Preview\" then
 tell application \"Preview\" to activate
 tell process \"Preview\"
  tell menu bar 1
   repeat with currentItem in (every menu item of menu \"Window\" of menu bar item \"Window\" whose name contains \"${PDFBASENAME}\")
    click currentItem
    click menu item \"Close\" of menu \"File\" of menu bar item \"File\"
   end repeat
  end tell
 end tell
 end if
end tell
" | osascript
# open ${PDFFILE}

open -a ${PDF_VIEWER:=Preview} "${pdf}"

Fixed in 0.7

parse_texexec_output.rb

  • remove
str.gsub!("\n", "<br>")
  • add
str = str.gsub(/^.*Insecure world writable dir.*?\n/, '')
  • Replace
str = str.gsub(/(.*?):(\d+):(.*)/, "<a href='txmt://open?url=file://#{dir}/#{file}&line=\\2'>\\1:\\2:\\3</a>")

with

str = str.gsub(/(.*?):(\d+):(.*)/, "<a href='txmt://open?url=file://#{dir}/\\1&line=\\2'>\\1:\\2:\\3</a>")

else errors point to wrong locations in case of project structure.

$$ pairs

create a new P

{       highlightPairs = (
                ( '(', ')' ),
                ( '{', '}' ),
                ( '[', ']' ),
                ( '$', '$' ),
        );
        smartTypingPairs = (
                ( '"', '"' ),
                ( '(', ')' ),
                ( '{', '}' ),
                ( '[', ']' ),
                ( '$', '$' ),
        );
 # no idea what that is (copied from text)
        unIndentedLinePattern = '^\s*$';
 }

fix env[tab]

\start${1:text}
$0
\stop${1/(\w*)(.*\n*)*/$1/}

add itm[tab]

\\startitemize
\\item $0
\\stopitemize