Ir al contenido principal

Lenguajes Compatibles

Smart Engineering indexa el código fuente de dos formas. Algunos lenguajes tienen un parser dedicado que extrae símbolos estructurados (clases, funciones, métodos, campos y más) y, para varios de ellos, detecta el framework de la aplicación en uso. Cualquier otro tipo de archivo reconocido es capturado por el FileIndexer genérico, que almacena contenido y metadatos básicos sin extracción de símbolos estructurados.

Lenguajes con parsers dedicados

Estos lenguajes producen símbolos estructurados y, cuando se indica, metadatos específicos del framework.

LenguajeExtensionesDetección de framework
Java.javaJava EE / Jakarta EE
C#.cs, .csx
C#/.NET projects.csproj, .fsproj, .vbproj, .sln, .slnx, .slnf and config files (web.config, app.config, packages.config, nuget.config, global.json, Directory.Build.props, Directory.Build.targets, Directory.Packages.props)
Python.py, .pyw, .pyde, .pyp, .pyt, .rpy, .tac, .wsgi, .xpy
TypeScript.ts, .d.tsAngular
PHP.php, .php3.php5, .phps, .phpt, .inc, .ctp, .aw, .class8 frameworks
Ruby.rb, .rake, .rubyRuby on Rails
Go.go
C.c, .h, .cats, .idc, .w
VB6.bas, .cls, .frm
COBOL.cbl, .cob, .cobol, .ccp, .bms, .prc, .proc, .CSD, .sco
PL/SQL.pls, .plsql, .pkb, .pks, .pck, .plb, and content-detected .sql
IBM RPG III.rpg, .RPG
IBM RPG IV.rpgle, .sqlrpgle, .RPGLE, .SQLRPGLE
JCL.jcl, .JCL
HLASM.hlasm, .bal
ESQL.esql
IBM ACE.msgflow, .subflow
Clipper.prg
VisualAge.esf
Natural (AG).systrans
Control-M.json (content-detected)
DataStage.json (content-detected)
MuleSoft.xml (content-detected), plus pom.xml / mule-artifact.json project descriptorsMule 4 flow metadata
NICE CXone.XML (content-detected)

Detección de framework y componentes

PHP (8 frameworks) — el parser inspecciona namespaces, clases base, interfaces, atributos de PHP 8+ y patrones de código para detectar y extraer metadatos específicos de framework para:

  1. Laravel
  2. Symfony
  3. WordPress
  4. Drupal
  5. CodeIgniter
  6. Yii
  7. CakePHP
  8. Slim

Java EE / Jakarta EE — detectado mediante anotaciones, clases base, interfaces e imports:

  • JPA / Jakarta Persistence (entities)
  • EJB / Jakarta Enterprise Beans
  • Servlets / Jakarta Servlet
  • JAX-RS / Jakarta REST (resources, including parameter and method metadata)
  • CDI / Jakarta CDI (beans)
  • WebSocket endpoints
  • JTA / Jakarta Transaction

Ruby on Rails — detectado mediante la estructura de directorios, convenciones de nomenclatura y herencia de ApplicationController / ApplicationRecord, con tratamiento dedicado para controllers, models y migrations.

Angular — el parser de TypeScript reconoce los decorators @Component, @Directive, @Injectable, @NgModule y @Pipe.

MuleSoft — las aplicaciones Mule 4 Maven se reconocen a partir de pom.xml y mule-artifact.json, y sus flujos XML se analizan para extraer flows con nombre y metadatos de integración.

Lenguajes indexados vía FileIndexer

Más allá de los parsers dedicados, Smart Engineering reconoce archivos de código fuente, markup, configuración y datos de más de 300 lenguajes y formatos adicionales mediante indexación de contenido (sin extracción de símbolos estructurados). Algunas extensiones se superponen con un parser dedicado indicado arriba y son tipos de archivo ambiguos (por ejemplo, .cpy y .lib se indexan como copybooks de COBOL, y los archivos .sql/.json genéricos caen en el FileIndexer cuando no coinciden con un parser sensible al contenido).

Lista completa de lenguajes indexados genéricamente
  • ABAP (.abap)
  • ActionScript (.as)
  • Ada (.ada, .adb, .ads)
  • Agda (.agda)
  • AGS Script (.asc, .ash)
  • Alloy (.als)
  • AMPL (.ampl, .mod)
  • ANTLR (.g4)
  • ApacheConf (.apacheconf, .vhost)
  • API Blueprint (.apib)
  • APL (.apl, .dyalog)
  • AppleScript (.applescript, .scpt)
  • Arc (.arc)
  • Arduino (.ino)
  • AsciiDoc (.adoc, .asciidoc)
  • ASP (.asax, .ascx, .ashx, .asmx, .asp, .aspx, .axd)
  • AspectJ (.aj)
  • Assembly (.a51, .asm, .nasm)
  • ATS (.dats, .hats, .sats)
  • Augeas (.aug)
  • AutoHotkey (.ahk, .ahkl)
  • AutoIt (.au3)
  • Awk (.auk, .awk, .gawk, .mawk, .nawk)
  • Batchfile (.bat, .cmd)
  • Befunge (.befunge)
  • Bison (.bison)
  • BitBake (.bb)
  • BlitzBasic (.decls)
  • BlitzMax (.bmx)
  • Bluespec (.bsv)
  • Boo (.boo)
  • Brainfuck (.b, .bf)
  • Brightscript (.brs)
  • Bro (.bro)
  • C# generic (.cake, .cshtml)
  • C++ (.c++, .cc, .cp, .cpp, .cxx, .h++, .hh, .hpp, .hxx, .inl, .ipp, .tcc, .tpp)
  • C-ObjDump (.c-objdump)
  • C2hs Haskell (.chs)
  • Cap'n Proto (.capnp)
  • CartoCSS (.mss)
  • Ceylon (.ceylon)
  • Chapel (.chpl)
  • Charity (.ch)
  • ChucK (.ck)
  • Cirru (.cirru)
  • Clarion (.clw)
  • Clean (.dcl, .icl)
  • Click (.click)
  • CLIPS (.clp)
  • Clojure (.boot, .cl2, .clj, .cljc, .cljs, .cljs.hl, .cljscm, .cljx, .hic)
  • CMake (.cmake, .cmake.in)
  • COBOL copybooks (.cpy, .lib)
  • CoffeeScript (._coffee, .cjsx, .coffee, .cson, .iced)
  • ColdFusion (.cfm, .cfml)
  • ColdFusion CFC (.cfc)
  • Common Lisp (.asd, .cl, .l, .lisp, .lsp, .ny, .podsl, .sexp)
  • Component Pascal (.cps)
  • Coq (.coq, .v)
  • Cpp-ObjDump (.c++-objdump, .c++objdump, .cpp-objdump, .cppobjdump, .cxx-objdump)
  • Creole (.creole)
  • Crystal (.cr)
  • CSS (.css)
  • CSV (.csv)
  • Cucumber (.feature)
  • Cuda (.cu, .cuh)
  • Cycript (.cy)
  • Cython (.pxd, .pxi, .pyx)
  • D (.d, .di)
  • D-ObjDump (.d-objdump)
  • Darcs Patch (.darcspatch, .dpatch)
  • Dart (.dart)
  • DataWeave (.dwl)
  • Diff (.diff, .patch)
  • DIGITAL Command Language (.com)
  • DM (.dm)
  • DNS Zone (.arpa, .zone)
  • Dockerfile (.dockerfile)
  • Dogescript (.djs)
  • Dylan (.dyl, .dylan, .intr, .lid)
  • E (.E)
  • Eagle (.brd, .sch)
  • Ecere Projects (.epj)
  • ECL (.ecl, .eclxml)
  • Eiffel (.e)
  • Elixir (.ex, .exs)
  • Elm (.elm)
  • Emacs Lisp (.el, .emacs, .emacs.desktop)
  • EmberScript (.em, .emberscript)
  • Erlang (.erl, .es, .escript, .hrl, .xrl, .yrl)
  • F# (.fs, .fsi, .fsx)
  • Factor (.factor)
  • Fancy (.fancypack, .fy)
  • Fantom (.fan)
  • FLUX (.flux, .fx)
  • Formatted (.eam.fs)
  • Forth (.4th, .forth, .fr, .frt, .fth)
  • FORTRAN (.f, .f03, .f08, .f77, .f90, .f95, .for, .fpp)
  • FreeMarker (.ftl)
  • G-code (.g, .gco, .gcode)
  • Game Maker Language (.gml)
  • GAMS (.gms)
  • GAP (.gap, .gd, .gi, .tst)
  • GAS (.ms, .s)
  • Genshi (.kid)
  • Gentoo Ebuild (.ebuild)
  • Gentoo Eclass (.eclass)
  • Gettext Catalog (.po, .pot)
  • GLSL (.fp, .frag, .frg, .fsh, .fshader, .geo, .geom, .glsl, .glslv, .gshader, .shader, .vert, .vrx, .vsh, .vshader)
  • Glyph (.glf)
  • Gnuplot (.gnu, .gnuplot, .gp, .plot, .plt)
  • Golo (.golo)
  • Gosu (.gs, .gst, .gsx, .vark)
  • Grace (.grace)
  • Gradle (.gradle)
  • Grammatical Framework (.gf)
  • GraphQL (.graphql)
  • Graphviz / DOT (.dot, .gv)
  • Groff (.1.9, .1in, .1m, .1x, .3in, .3m, .3qt, .3x, .man, .me, .n, .rno, .roff)
  • Groovy (.groovy, .grt, .gtpl, .gvy)
  • Groovy Server Pages (.gsp)
  • Haml (.haml, .haml.deface)
  • Handlebars (.handlebars, .hbs)
  • Harbour (.hb)
  • Haskell (.hs, .hsc)
  • Haxe (.hx, .hxsl)
  • HCL (.hcl, .tf)
  • HLSL (.fxh, .hlsl, .hlsli)
  • HTML (.htm, .html, .html.hl, .st, .xht, .xhtml)
  • HTML+Django (.jinja, .mustache)
  • HTML+EEX (.eex)
  • HTML+ERB (.erb, .erb.deface)
  • HTML+PHP (.phtml)
  • HTTP (.http)
  • Hy (.hy)
  • IBM RPG generic (.DSPF, .PF, .RPF)
  • IDL (.dlm, .pro)
  • Idris (.idr, .lidr)
  • IGOR Pro (.ipf)
  • Inform 7 (.i7x, .ni)
  • INI (.cfg, .prefs)
  • Inno Setup (.iss)
  • Io (.io)
  • Ioke (.ik)
  • IRC log (.irclog, .weechatlog)
  • Isabelle (.thy)
  • J (.ijs)
  • Jade (.jade)
  • Jasmin (.j)
  • Java Server Pages (.jsp)
  • JavaScript (._js, .bones, .es6, .jake, .js, .jsb, .jscad, .jsfl, .jsm, .jss, .njs, .pac, .sjs, .ssjs, .xsjs, .xsjslib, and Sublime Text metadata extensions)
  • JFlex (.flex, .jflex)
  • JSON (.geojson, .json, .lock, .topojson)
  • JSON5 (.json5)
  • JSONiq (.jq)
  • JSONLD (.jsonld)
  • JSX (.jsx)
  • Julia (.jl)
  • Jupyter Notebook (.ipynb)
  • KiCad (.kicad_pcb)
  • Kit (.kit)
  • Kotlin (.kt, .ktm, .kts)
  • KRL (.krl)
  • LabVIEW (.lvproj)
  • Lasso (.las, .lasso, .lasso8, .lasso9, .ldml)
  • Latte (.latte)
  • Lean (.hlean, .lean)
  • Less (.less)
  • Lex (.lex)
  • LFE (.lfe)
  • LilyPond (.ily, .ly)
  • Limbo (.m)
  • Linker Script (.ld, .lds)
  • Liquid (.liquid)
  • Literate Agda (.lagda)
  • Literate CoffeeScript (.litcoffee)
  • Literate Haskell (.lhs)
  • LiveScript (._ls, .ls)
  • LLVM (.ll)
  • Logos (.x, .xi, .xm)
  • Logtalk (.lgt, .logtalk)
  • LOLCODE (.lol)
  • LookML (.lookml)
  • LSL (.lsl, .lslp)
  • Lua (.fcgi, .lua, .nse, .pd_lua, .rbxs, .wlua)
  • M / MUMPS (.mumps)
  • M4 (.m4)
  • Makefile (.mak, .mk, .mkfile)
  • Mako (.mako, .mao)
  • Markdown (.markdown, .md, .mkd, .mkdn, .mkdown, .ron)
  • Mask (.mask)
  • Mathematica (.cdf, .ma, .mathematica, .mt, .nb, .nbp, .wl, .wlt)
  • Matlab (.matlab)
  • Max (.maxhelp, .maxpat, .maxproj, .mxt, .pat)
  • MAXScript (.mcr)
  • MediaWiki (.mediawiki, .wiki)
  • Mercury (.moo)
  • Metal (.metal)
  • MiniD (.minid)
  • Mirah (.druby, .duby, .mir, .mirah)
  • Modelica (.mo)
  • Module Management System (.mmk, .mms)
  • Monkey (.monkey)
  • MoonScript (.moon)
  • MTML (.mtml)
  • MUF (.muf)
  • Myghty (.myt)
  • NCL (.ncl)
  • NetLinx (.axi, .axs)
  • NetLinx+ERB (.axi.erb, .axs.erb)
  • NetLogo (.nlogo)
  • Nginx (.nginxconf)
  • Nimrod (.nim, .nimrod)
  • Ninja (.ninja)
  • Nit (.nit)
  • Nix (.nix)
  • NL (.nl)
  • NSIS (.nsh, .nsi)
  • Nu (.nu)
  • NumPy (.numpy, .numpyw, .numsc)
  • ObjDump (.objdump)
  • Objective-C++ (.mm)
  • Objective-J (.sj)
  • OCaml (.eliom, .eliomi, .ml, .ml4, .mli, .mll, .mly)
  • Omgrofl (.omgrofl)
  • Opa (.opa)
  • Opal (.opal)
  • OpenCL (.opencl)
  • OpenEdge ABL (.p)
  • OpenSCAD (.scad)
  • Org (.org)
  • Ox (.ox, .oxh, .oxo)
  • Oxygene (.oxygene)
  • Oz (.oz)
  • Pan (.pan)
  • Papyrus (.psc)
  • Parrot (.parrot)
  • Parrot Assembly (.pasm)
  • Parrot Internal Representation (.pir)
  • Pascal (.dfm, .dpr, .lpr, .pas, .pp)
  • PAWN (.pwn)
  • Perl (.al, .cgi, .perl, .ph, .pl, .plx, .pm, .pod, .psgi, .t)
  • Perl 6 (.6pl, .6pm, .nqp, .p6, .p6l, .p6m, .pl6, .pm6)
  • Pickle (.pkl)
  • PigLatin (.pig)
  • Pike (.pike, .pmod)
  • PogoScript (.pogo)
  • Pony (.pony)
  • PostScript (.eps, .ps)
  • POV-Ray SDL (.pov)
  • PowerShell (.ps1, .psd1, .psm1)
  • Processing (.pde)
  • Prolog (.prolog, .yap)
  • Propeller Spin (.spin)
  • Protocol Buffer (.proto)
  • Public Key (.pub)
  • Pure Data (.pd)
  • PureBasic (.pb, .pbi)
  • PureScript (.purs)
  • Python build scripts (.bzl, .gyp, .lmi)
  • Python traceback (.pytb)
  • QMake (.pri)
  • QML (.qbs, .qml)
  • R (.r, .rd, .rsx)
  • Racket (.rkt, .rktd, .rktl, .scrbl)
  • Ragel in Ruby Host (.rl)
  • RAML (.raml)
  • Raw token data (.raw)
  • RDoc (.rdoc)
  • REALbasic (.rbbas, .rbfrm, .rbmnu, .rbres, .rbtbar, .rbuistate)
  • Rebol (.r2, .r3, .reb, .rebol)
  • Red (.red, .reds)
  • Redcode (.cw)
  • RenderScript (.rsh)
  • RHTML (.rhtml)
  • RMarkdown (.rmd)
  • RobotFramework (.robot)
  • Rouge (.rg)
  • Ruby generic (.builder, .god, .irbrc, .jbuilder, .mspec, .pluginspec, .podspec, .rabl, .rbuild, .rbw, .rbx, .ru, .thor, .watchr)
  • Rust (.rs, .rs.in)
  • Sage (.sage, .sagews)
  • SaltStack (.sls)
  • SAS (.sas)
  • Sass (.sass)
  • Scala (.sbt, .sc, .scala)
  • Scaml (.scaml)
  • Scheme (.scm, .sld, .sps, .ss)
  • Scilab (.sce, .sci)
  • SCSS (.scss)
  • Self (.self)
  • Shell (.bash, .bats, .command, .ksh, .sh, .sh.in, .tmux, .tool, .zsh)
  • ShellSession (.sh-session)
  • Shen (.shen)
  • Slash (.sl)
  • Slim (.slim)
  • Smali (.smali)
  • Smarty (.tpl)
  • SMT (.smt, .smt2)
  • SourcePawn (.sma, .sp)
  • SPARQL (.rq, .sparql)
  • SQF (.hqf, .sqf)
  • SQL (.cql, .ddl, .sql, .tab, .udf, .viw)
  • SQLPL (.db2)
  • Squirrel (.nut)
  • Stan (.stan)
  • Standard ML (.ML, .fun, .sig, .sml)
  • Stata (.ado, .do, .doh, .ihlp, .mata, .matah, .sthlp)
  • STON (.ston)
  • Stylus (.styl)
  • SuperCollider (.scd)
  • SVG (.svg)
  • Swift (.swift)
  • SystemVerilog (.sv, .svh, .vh)
  • Tcl (.adp, .tcl, .tm)
  • Text (.txt)
  • TOML (.toml)
  • TXL (.txl)
  • XML (.xml)

Además de archivos comunes de proyecto, configuración y recursos — .resx, .gemspec, Gemfile, pom.xml, archivos de schema/migration de base de datos y de Rails, configuración de entorno y estilo INI, entre otros.

Notas

  • Repositorios multi-lenguaje: un único repositorio puede contener cualquier combinación de los lenguajes anteriores; cada archivo se enruta al parser correspondiente de forma independiente.
  • Los parsers dedicados producen símbolos estructurados (clases, funciones, métodos, campos) usados en la generación de documentación, el grafo del repositorio y el Chat Agéntico.
  • Los lenguajes del FileIndexer tienen el contenido indexado y son buscables, pero no producen símbolos estructurados.
  • Las extensiones ambiguas (por ejemplo, .sql, .json, .xml) se resuelven inspeccionando el contenido del archivo, no solo la extensión, por lo que la misma extensión puede enrutarse a distintos parsers según lo que contenga.
  • Esta lista refleja los parsers y la configuración del indexador actualmente disponibles en Smart Engineering y puede crecer a medida que se agreguen nuevos parsers.

Ver también