Pergunta

Estou trabalhando no aplicativo de cacau que deve poder analisar e destacar um código-fonte escrito em idiomas como Objective-C, SQL, JavaScript, Python etc. O texto também deve ser editável (usando o NSTEXTVIEW, por exemplo).

Por favor, informe qual é a melhor maneira de implementar esse recurso no Mac OS X 10.5.

Não há necessidade de suportar a conclusão automática e outras características extras. Formatação simples por palavras -chave, strings, #includes e números, mas com desempenho legal é apenas ok.

Além disso, seria ótimo se a configuração dos idiomas fosse suportada.

Obrigado!

Foi útil?

Solução

Ao preparar um projeto que exigirá algo semelhante, encontrei o seguinte (mas não os avaliei em profundidade):

  • /Desenvolvedor/Exemplos/OpenGL/Cocoa/Glsleditorsample implementos de sintaxe destaque.
  • Idekit, . Isso não é atualizado há um tempo (a compatibilidade de 10.2 e 10.3 e vem com um projeto de construtor de projetos - pode ser convertido com o Xcode 2.5).
  • UksyntaxColoredTextDocument.

Outras dicas

Segundo o conselho de Ahruman - Particular olhando para o UksyntaxColoredTextDocument da ULI, pois isso o apontará na direção certa sobre quais classes etc. você precisará aprender.

Esta é outra excelente fonte de informação:

http://www.cocoadev.com/index.pl?implementsyntaxhighlighting

Boa sorte - é difícil acertar a sintaxe, mas muita diversão ao longo do caminho!

Eu tive que procurar uma solução de destaque de sintaxe para o cacau recentemente e, depois de pesquisar no Stack Overflow, o Google e o Github não conseguiram encontrar nada moderno, fácil de reutilizar e ainda em desenvolvimento ativo.

Parece que a maioria dos marcadores de sintaxe hoje em dia estão escritos para a web. Felizmente, é realmente muito fácil incorporá -los em um WebView para usar em qualquer aplicativo de cacau. A comunicação com o editor pode ser feita através do webkits Protocolo WebScriptObject.

Aqui está um exemplo de invólucro para o popular editor de texto JavaScript Codemirror para cacau:https://github.com/swisspol/codemirRorview

Você pode usar pigmentos, que está escrito no Python, para gerar uma representação HTML do código -fonte, que pode ser apresentado em uma visualização da Web.

(Observe, como refletido no comentário abaixo - esta resposta foi para a pergunta original, que não mencionou texto editável.)

Você pode considerar o uso do Flex conforme descrito (em alemão) aqui [1]. Você pode encontrar um exemplo dessa abordagem aqui [2].

[1] http://www.osxentwicklerforum.de/thread.php?postid=14764 [2] http://obndeSous.github.com/davenport/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top