{"id":343,"date":"2011-07-18T04:06:51","date_gmt":"2011-07-18T04:06:51","guid":{"rendered":"http:\/\/blog.filipesaraiva.info\/?p=343"},"modified":"2011-07-18T04:12:22","modified_gmt":"2011-07-18T04:12:22","slug":"backend-do-cantor-para-scilab-destaque-de-sintaxe-e-autocomplete","status":"publish","type":"post","link":"https:\/\/filipe.saraiva.tec.br\/blog\/?p=343","title":{"rendered":"Backend do Cantor para Scilab: Destaque de Sintaxe e Autocomplete"},"content":{"rendered":"<p style=\"text-align: justify;\">Trago neste post algumas novidades sobre o suporte ao Scilab no Cantor, meu projeto do Google Summer of Code deste ano.<\/p>\n<p style=\"text-align: justify;\">Ap\u00f3s as \u00faltimas semanas de trabalho, duas interessantes funcionalidades do backend foram implementadas: o destaque de sintaxe e o autocomplete para fun\u00e7\u00f5es e vari\u00e1veis pr\u00e9-definidas. Estas funcionalidades s\u00e3o legais pois est\u00e3o presentes na maioria das IDEs e elas, em conjunto com outras caracter\u00edsticas, s\u00e3o o que nos fazem preferir a escrever linhas de c\u00f3digo em IDEs do que em editores de texto convencionais. \ud83d\ude42<\/p>\n<p style=\"text-align: justify;\">Essas funcionalidades foram desenvolvidas baseadas na forma como est\u00e3o implementadas para o backend de Maxima: usando arquivo XML que lista todas as fun\u00e7\u00f5es e vari\u00e1veis pr\u00e9-definidas.<\/p>\n<p style=\"text-align: justify;\">Alguns screenshots para demonstrar o funcionamento delas. Abaixo, temos o destaque de sintaxe do Scilab no <a href=\"http:\/\/help.scilab.org\/docs\/5.3.2\/pt_BR\/section_8f232853a84003083c1288408f14c495.html\" target=\"_blank\">SciNotes<\/a>, o editor padr\u00e3o do Scilab:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/07\/ScilabSciNotes.png\" alt=\"\" width=\"720\" height=\"431\" \/><em>Destaque de sintaxe no SciNotes<\/em><\/p>\n<p style=\"text-align: justify;\">Para encontrar todas as palavras-chave de funcionalidades e vari\u00e1veis pr\u00e9-definidas, usei a fun\u00e7\u00e3o <a href=\"http:\/\/help.scilab.org\/docs\/5.3.2\/en_US\/getscilabkeywords.html\" target=\"_blank\">getscilabkeywords<\/a> que lista todas as palavras chaves do Scilab. Com ela em m\u00e3os, pude criar o arquivo XML com estes dados. Abaixo vemos o destaque de sintaxe no Cantor:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/07\/ScilabSyntaxHighlighterCantorFinal.png\" alt=\"\" width=\"720\" height=\"431\" \/><em>Destaque de sintaxe no Cantor<\/em><\/p>\n<p style=\"text-align: justify;\">Ainda falta um detalhe para completar esta funcionalidade: o destaque de vari\u00e1veis pr\u00e9-definidas. Mas estou conversando com o Alex Rieder para terminarmos isso.<\/p>\n<p style=\"text-align: justify;\">Abaixo, como curiosidade, o destaque de sintaxe do Scilab no Cantor e no SciNotes, lado-a-lado:<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/07\/SciNotesCantorComparation.png\" alt=\"\" width=\"720\" height=\"430\" \/><em>Destaque de sintaxe no Cantor e SciNotes<\/em><\/p>\n<p style=\"text-align: justify;\">A outra funcionalidade \u00e9 o autocomplete, que faz com que o Cantor sugira nomes de fun\u00e7\u00f5es ou vari\u00e1veis pr\u00e9-definidas ao desenvolvedor durante a escrita do c\u00f3digo. No Cantor, basta ap\u00f3s qualquer caractere digitar a tecla TAB (padr\u00e3o neste software para esta funcionalidade).<\/p>\n<p style=\"text-align: justify;\">Na imagem abaixo temos o autocomplete sugerindo nomes de fun\u00e7\u00e3o para a palavra &#8220;plot&#8221; (a fun\u00e7\u00e3o de gerar gr\u00e1ficos no Scilab):<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/07\/ScilabTabComplete.png\" alt=\"\" width=\"720\" height=\"431\" \/><em>Autocomplete em a\u00e7\u00e3o!<\/em><\/p>\n<p style=\"text-align: justify;\">Ao contr\u00e1rio do destaque de sintaxe, o autocomplete tamb\u00e9m est\u00e1 funcionando para as vari\u00e1veis pr\u00e9-definidas.<\/p>\n<p style=\"text-align: justify;\">O c\u00f3digo deste backend est\u00e1 no reposit\u00f3rio do Cantor, atualmente no branch scilab-backend. Fique a vontade para testar, mas n\u00e3o se esque\u00e7a: voc\u00ea deve compilar tamb\u00e9m o Scilab caso queira experimentar o suporte no Cantor!<\/p>\n<p style=\"text-align: justify;\"><em><\/em>Bem, por enquanto \u00e9 isso! O projeto est\u00e1 bem avan\u00e7ado e, quem sabe, teremos o suporte ao Scilab no Cantor vers\u00e3o KDE SC 4.8? \ud83d\ude09<\/p>\n<p style=\"text-align: justify;\">E para quem for \u00e0 Berlim: nos veremos por l\u00e1!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone aligncenter\" src=\"http:\/\/blog.filipesaraiva.info\/wp-content\/uploads\/2011\/07\/DS2011banner.png\" alt=\"\" width=\"333\" height=\"110\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Trago neste post algumas novidades sobre o suporte ao Scilab no Cantor, meu projeto do Google Summer of Code deste ano. Ap\u00f3s as \u00faltimas semanas de trabalho, duas interessantes funcionalidades do backend foram implementadas: o destaque de sintaxe e o autocomplete para fun\u00e7\u00f5es e vari\u00e1veis pr\u00e9-definidas. Estas funcionalidades s\u00e3o legais pois est\u00e3o presentes na maioria&hellip;&nbsp;<a href=\"https:\/\/filipe.saraiva.tec.br\/blog\/?p=343\" class=\"\" rel=\"bookmark\">Continue a ler &raquo;<span class=\"screen-reader-text\">Backend do Cantor para Scilab: Destaque de Sintaxe e Autocomplete<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9],"tags":[58,11,62,47,59,26,42,41,49,55],"class_list":["post-343","post","type-post","status-publish","format-standard","hentry","category-software-livre","tag-cantor","tag-desenvolvimento","tag-desktop-summit","tag-gsoc","tag-gsoc2011-scilab-backend","tag-kde","tag-planet-mageia-portugues","tag-planeta-psl-pi","tag-planetkde-portugues","tag-scilab"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1p2Jh-5x","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/343","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=343"}],"version-history":[{"count":8,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/343\/revisions"}],"predecessor-version":[{"id":352,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/343\/revisions\/352"}],"wp:attachment":[{"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/filipe.saraiva.tec.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}