Qual é a melhor maneira de implementar o destaque da sintaxe do código -fonte no cacau? [fechado
-
09-09-2019 - |
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!
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/