Existe um pacote / plugin / etc para o TextMate para ativar a pesquisa de declaração de função nos arquivos?

3

Muitos IDEs modernos fornecem a capacidade de pular para a declaração de função usando um atalho simples ou um clique especial do mouse em uma chamada de função. Esta é a única coisa que impede o TextMate de ser meu único IDE para governá-los todos.

Até agora eu acho o TextMate ótimo para desenvolvimento web e scripting, mas fazer desenvolvimento de C ++ ou Java em larga escala nele pode parecer um pouco deficiente.

    
por rjroy 27.05.2010 / 19:51

3 respostas

0

Aqui está como fazer isso no TextMate (de cache do Google ):

Many IDEs have the capability to 'jump' to a function declaration within the project you are working in. This is how to do it in TextMate. Assuming you understand bundles the Bash script below should be placed in a Command with output set to Show As Tool Tip, then finally picking the key combination you want.

Once ready simply press the key combination while the Caret is placed over your function. The script below will iterate through PHP related files look for the declaration, then opening a TextMate document at the proper line. When this script fails a tooltip mention so will be displayed.

FUNC="$TM_CURRENT_WORD"
DIR="$TM_PROJECT_DIRECTORY"
OUTPUT=''

FILES=('find "$DIR" -type f | egrep '\.(module|inc|php|engine|install)$'')

#
# Look for a function declaration within a files contents.
#
# <file> <function>
#
function lookup_function {
  local line='nl -b a "$1" | grep 'function '"$2"'(' | awk '{print $1}''
  if [[ "$line" -gt 0 ]]; then
    mate "$1" -l "$line"
    exit 0
  fi
}

# Iterate files
for (( i=0; i < ${#FILES[*]}; i++)); do
  file="${FILES[${i}]}"
  lookup_function "$file" "$FUNC"
done

# Nothing found
echo 'Function '${FUNC}' was not found within the current project.'

Além disso, verifique isso:

link

    
por 27.05.2010 / 20:46
1

Eu modifiquei o script do ghoppe para trabalhar em Python class & definições de função (também executa um pouco mais rápido):

FUNC="$TM_CURRENT_WORD"
DIR="$TM_PROJECT_DIRECTORY"
OUTPUT=''

# Define the class or function definition string that we're looking for.
FUNCDEF='(def|class) '$FUNC

# Find all files that contain FUNCDEF
FILES=('egrep "$FUNCDEF" $DIR/* -r -l --include=*.py')

#
# Look for a function declaration within a files contents.
#
# <file>
#
function lookup_function {
    local line='nl -b a "$1" | egrep "$FUNCDEF" | awk '{print $1}''
    if [[ "$line" -gt 0 ]]; then
      # echo 'Jumping to --> '$1':'$line
      mate "$1" -l "$line"
      exit 0
    fi
}

# Iterate files
for file in ${FILES[@]}; do
    echo $file
    lookup_function "$file"
done

# Nothing found
echo 'Function '${FUNC}' was not found within the current project.'
    
por 12.08.2012 / 22:44
0

Embora o TextMate tenha formatação léxica (negrito, itálico, colorido, etc.), ele não tem uma compreensão real do código real que você está digitando nele. Para fazer coisas mais complicadas como você está querendo, o TextMate precisaria fazer outro tipo de análise, além da formatação que está se aproximando de um compilador.
Pelo que sei, o TextMate não suporta essa funcionalidade agora.

    
por 27.05.2010 / 20:15