{"id":136778,"date":"2021-04-15T21:34:44","date_gmt":"2021-04-15T20:34:44","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=136778"},"modified":"2021-04-15T21:34:44","modified_gmt":"2021-04-15T20:34:44","slug":"lanzamiento-del-complemento-de-kotlin-2021-1-rendimiento-de-ide-mejorado-y-mayor-compatibilidad-con-refactorizaciones","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/es\/kotlin\/2021\/04\/lanzamiento-del-complemento-de-kotlin-2021-1-rendimiento-de-ide-mejorado-y-mayor-compatibilidad-con-refactorizaciones\/","title":{"rendered":"Lanzamiento del complemento de Kotlin 2021.1: rendimiento de IDE mejorado y mayor compatibilidad con refactorizaciones"},"content":{"rendered":"<style>p > code {font-weight: 400; background: #f6f6f6}<\/style>\n<p>El m\u00e1s reciente lanzamiento de IntelliJ IDEA, la versi\u00f3n de 2021.1, incluye el complemento de Kotlin mejorado. Disfrute de una mejor experiencia para el desarrollador, con resaltado y finalizaci\u00f3n de c\u00f3digo m\u00e1s r\u00e1pidos, cambie firmas con mejor compatibilidad con el IDE, disfrute de una mejor experiencia de depuraci\u00f3n para evaluar propiedades y m\u00e1s.<\/p>\n<p>Cuando instale el nuevo complemento obtendr\u00e1:<\/p>\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/04\/kotlin-plugin-2021-1-released\/#code-completion-and-highlighting\">Resaltado y finalizaci\u00f3n de c\u00f3digo m\u00e1s r\u00e1pidos<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/04\/kotlin-plugin-2021-1-released\/#custom-getters-in-variables-view\">Evaluaci\u00f3n de getters personalizados directamente en la vista Variables<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/04\/kotlin-plugin-2021-1-released\/#improved-change-signature-refactoring\">Refactorizaci\u00f3n Change Signature con mejor compatibilidad con el IDE<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/04\/kotlin-plugin-2021-1-released\/#code-completion-for-type-parameters\">Finalizaci\u00f3n de c\u00f3digo para argumentos de tipo<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/04\/kotlin-plugin-2021-1-released\/#class-diagrams-for-kotlin-code\">Diagramas de clase para su c\u00f3digo Kotlin<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2021\/04\/kotlin-plugin-2021-1-released\/#other-ide-improvements\">Otras mejoras en el IDE<\/a><\/li>\n<\/ul>\n<h2>Actualizaci\u00f3n autom\u00e1tica a esta nueva versi\u00f3n<\/h2>\n<p>IntelliJ IDEA le dar\u00e1 la opci\u00f3n de actualizar autom\u00e1ticamente a la nueva versi\u00f3n en cuanto salga.<\/p>\n<p>Si todav\u00eda no es usuario de IntelliJ IDEA, puede <a href=\"https:\/\/www.jetbrains.com\/idea\/download\/\" target=\"_blank\" rel=\"noopener\">descargar la versi\u00f3n m\u00e1s reciente<\/a>, que ya incluir\u00e1 el \u00faltimo complemento de Kotlin.<\/p>\n<p><a name=\"code-completion-and-highlighting\"><\/a><\/p>\n<h2>Disfrute de resaltado y finalizaci\u00f3n de c\u00f3digo m\u00e1s r\u00e1pidos<\/h2>\n<p>A veces, escribir c\u00f3digo puede no ser tan divertido como deber\u00eda, especialmente si tiene que esperar a que el IDE resalte su c\u00f3digo y le ayude a finalizarlo. Nuestro objetivo es hacerle f\u00e1cil estas tareas.<\/p>\n<p>El nuevo complemento de Kotlin mejora significativamente el rendimiento de la finalizaci\u00f3n y el resaltado de c\u00f3digo en Kotlin.<\/p>\n<p>Seg\u00fan nuestras pruebas, la velocidad de resaltado ha mejorado en alrededor de un 25 %, y la finalizaci\u00f3n de c\u00f3digo es ahora m\u00e1s de un 50 % m\u00e1s r\u00e1pida, lo cual se acerca mucho m\u00e1s al nivel de rendimiento para Java.<\/p>\n<div style=\"background-color: #f1f6fe; margin-bottom: 2px; padding: 5px; margin-right: 0%; text-align: left; min-height: px;\"><strong>Tenga en cuenta<\/strong> que estos n\u00fameros solo se basan en nuestras pruebas. Las mejoras en sus proyectos reales podr\u00edan no ser tan significativas como muestran nuestras pruebas, pero deber\u00eda notar un mucho mejor rendimiento.<\/div>\n<h3>Resaltado de c\u00f3digo de Kotlin en el nuevo complemento<\/h3>\n<p>Aqu\u00ed puede ver una comparaci\u00f3n de la velocidad del resaltado de c\u00f3digo en Kotlin entre el complemento de Kotlin anterior, versi\u00f3n 2020.3, y la nueva, la versi\u00f3n 2021.1. Los resultados se basan en nuestras pruebas de referencia, que comprueban el resaltado de c\u00f3digo en archivos complejos de Kotlin.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/04\/faster-code-highlighting.jpg\" alt=\"Resaltado de c\u00f3digo Kotlin m\u00e1s r\u00e1pido\" \/><\/p>\n<h3>Finalizaci\u00f3n de c\u00f3digo Kotlin en el nuevo complemento<\/h3>\n<p>Y esta es una comparaci\u00f3n del rendimiento de la finalizaci\u00f3n de c\u00f3digo Kotlin entre la versi\u00f3n 2020.3 y la versi\u00f3n 2021.1. Los resultados se basan en nuestras pruebas de referencia, que comprueban la finalizaci\u00f3n de c\u00f3digo en archivos complejos de Kotlin.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/04\/faster-code-completion.jpg\" alt=\"Finalizaci\u00f3n de c\u00f3digo Kotlin m\u00e1s r\u00e1pida\" \/><\/p>\n<p><a name=\"improved-change-signature\"><\/a><\/p>\n<h2>Change Signature m\u00e1s compatible con el IDE<\/h2>\n<p>Si ha utilizado la <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/change-signature.html\" target=\"_blank\" rel=\"noopener\">refactorizaci\u00f3n Change Signature<\/a> en versiones anteriores del complemento de Kotlin, puede que se haya encontrado problemas y limitaciones, as\u00ed como poca visibilidad en cuanto a qu\u00e9 fall\u00f3 en esos casos.<\/p>\n<p>Actualice al nuevo complemento de Kotlin para disfrutar de las ventajas de m\u00e1s de <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KTIJ-685\" target=\"_blank\" rel=\"noopener\">40 errores subsanados y mejoras en la refactorizaci\u00f3n Change Signature<\/a>.<\/p>\n<p>Estas son algunas de las principales mejoras:<\/p>\n<ul>\n<li>Detecci\u00f3n de m\u00e1s casos en los que el c\u00f3digo resultante podr\u00eda estar da\u00f1ado.<\/li>\n<li>Soluciones en refactorizaci\u00f3n heredada, incluyendo <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KTIJ-966\" target=\"_blank\" rel=\"noopener\">refactorizaci\u00f3n interlenguaje<\/a>.<\/li>\n<li>Experiencia de usuario mejorada para procesar propiedades.<\/li>\n<li><a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KTIJ-903\" target=\"_blank\" rel=\"noopener\">Modo adicional de declarar el valor de par\u00e1metro predeterminado<\/a>.<\/li>\n<li>Procesamiento correcto de tildes graves.<\/li>\n<\/ul>\n<p><a name=\"custom-getters-in-variables-view\"><\/a><\/p>\n<h2>Eval\u00fae getters personalizados directamente en la vista Variables<\/h2>\n<p>Seg\u00fan nuestras investigaciones, la depuraci\u00f3n de Kotlin requiere mejoras significativas para ofrecer una mejor experiencia al desarrollador, y ya tenemos <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-44330\" target=\"_blank\" rel=\"noopener\">un sinf\u00edn de planes<\/a> en marcha para lograrlo.<\/p>\n<p>Esta versi\u00f3n ofrece una mejora peque\u00f1a pero importante para evaluar propiedades en la vista <strong>Variables<\/strong>.<\/p>\n<p>Antes, durante una sesi\u00f3n de depuraci\u00f3n, solo pod\u00eda ver las propiedades que no ten\u00edan un getter personalizado y aquellas con un <a href=\"https:\/\/kotlinlang.org\/docs\/properties.html#backing-fields\" target=\"_blank\" rel=\"noopener\">campo de respaldo<\/a>. Las propiedades con un getter personalizado no aparec\u00edan porque se representaban como m\u00e9todos habituales en la JVM. En la versi\u00f3n 2021.1 del complemento de Kotlin ver\u00e1 todas estas propiedades y podr\u00e1 evaluarlas bajo demanda haciendo clic en <code>get()<\/code> junto al nombre de propiedad.<\/p>\n<p>Por ejemplo, al depurar el c\u00f3digo siguiente, puede ejecutar el m\u00e9todo <code>get()<\/code> para ver el valor <code>versionString<\/code>:<\/p>\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\nclass LanguageVersion(val major: Int, val minor: Int) {\nval isStable: Boolean\nget() = major &lt;= 1 &amp;&amp; minor &lt;= 4\nval isExperimental: Boolean\nget() = !isStable\nval versionString: String\nget() = &quot;$major.$minor&quot;\noverride fun toString() = versionString\n}\nfun main() {\nval version = LanguageVersion(1, 4)\n}\n<\/pre>\n<p>En la ventana <strong>Debug<\/strong>, puede ver los valores de las propiedades:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/04\/debugging-variables-view.png\" alt=\"Depuraci\u00f3n en la vista Variables\" \/><\/p>\n<p>Nos encantar\u00eda que probase esta funcionalidad y nos diese feedback en <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KT-19752\" target=\"_blank\" rel=\"noopener\">esta entrada<\/a> o en comentarios a este art\u00edculo.<\/p>\n<p><a name=\"code-completion-for-type-parameters\"><\/a><\/p>\n<h2>Utilice la finalizaci\u00f3n de c\u00f3digo para argumentos de tipo<\/h2>\n<p>Ahora, el nuevo complemento de Kotlin es capaz de completar c\u00f3digo para argumentos de tipo. Antes ten\u00eda que escribir este c\u00f3digo manualmente sin la ventaja de las funcionalidades de asistencia del IDE.<\/p>\n<p>Ahora, la finalizaci\u00f3n de c\u00f3digo sugiere funciones y propiedades tras las funciones gen\u00e9ricas y restaura los argumentos de tipo cuando sea necesario. Cuando selecciona una funci\u00f3n de este tipo en la lista, el IDE a\u00f1ade el argumento de tipo correcto al c\u00f3digo previo.<\/p>\n<p>En el siguiente ejemplo, el IDE a\u00f1ade autom\u00e1ticamente el tipo <code>&lt;String&gt;()<\/code>:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/04\/code-completion-type-arguments.png\" alt=\"Finalizaci\u00f3n de c\u00f3digo para argumentos de tipo\" \/><\/p>\n<p>Cuando aplique la sugerencia del IDE, obtendr\u00e1 el c\u00f3digo siguiente:<\/p>\n<pre class=\"kotlin-code\" data-highlight-only=\"true\" theme=\"idea\" indent=\"4\" style=\"visibility: hidden; padding: 36px 0;\">\nfun typeArgumentsAtCodeCompletion() {\n\/\/ Function definition from stdlib:\n\/\/ public fun &lt;T&gt; emptyList(): List&lt;T&gt;\nval listA: List&lt;String&gt; = emptyList() \/\/ T is inferred from the context (explicit variable type)\nval listB: List&lt;String&gt; =\nemptyList&lt;String&gt;().reversed() \/\/ type argument for emptyList() is required to evaluate expression type\n}\n<\/pre>\n<p><a name=\"class-diagrams-for-kotlin-code\"><\/a><\/p>\n<h2>Revise la estructura de su c\u00f3digo Kotlin con diagramas de clase<\/h2>\n<p>Con la nueva versi\u00f3n, puede revisar la estructura de su c\u00f3digo Kotlin con diagramas UML Class. Para crear un diagrama, seleccione <strong>Diagrams | Show Diagram&#8230; | Kotlin Classes<\/strong> en la vista <strong>Project View<\/strong>.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2021\/04\/kotlin-classes-uml-diagram.png\" alt=\"Diagramas de clase UML para c\u00f3digo Kotlin\" \/><\/p>\n<p><a name=\"other-ide-improvements\"><\/a><\/p>\n<h2>Disfrute de otras mejoras en el IDE<\/h2>\n<p>Como el complemento de Kotlin y la plataforma IntelliJ se han trasladado a la misma base de c\u00f3digo y ahora van unidos, tambi\u00e9n tendr\u00e1 la capacidad de mejorar su experiencia con Kotlin del modo siguiente:<\/p>\n<ul>\n<li>Utilice el perfilador de memoria b\u00e1sico que se anunciaba en la <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/#debugger\" target=\"_blank\" rel=\"noopener\">versi\u00f3n 2020.3 de IntelliJ IDEA<\/a> mediante la ejecuci\u00f3n de Gradle.<\/li>\n<li>Reciba advertencias sobre <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KTIJ-826\" target=\"_blank\" rel=\"noopener\">llamadas inapropiadas a bloqueo de subprocesos en corrutinas<\/a>.<\/li>\n<li>Evite problemas de inyecci\u00f3n de lenguaje al <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KTIJ-679\" target=\"_blank\" rel=\"noopener\">utilizar comillas triples<\/a> y <a href=\"https:\/\/youtrack.jetbrains.com\/issue\/KTIJ-855\" target=\"_blank\" rel=\"noopener\">concatenar cadenas<\/a>.<\/li>\n<\/ul>\n<h2>Vea tambi\u00e9n<\/h2>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/whatsnew-plugin-20211.html\" target=\"_blank\" rel=\"noopener\">Novedades en el complemento de Kotlin 2021.1<\/a><\/li>\n<li>Novedades en IntelliJ IDEA 2021.1 \u2013 <a href=\"https:\/\/www.jetbrains.com\/idea\/whatsnew\/\" target=\"_blank\" rel=\"noopener\">docs<\/a> y <a href=\"https:\/\/youtu.be\/YBmR0J3-r3o?t=567\" target=\"_blank\" rel=\"noopener\">v\u00eddeo<\/a>.<\/li>\n<\/ul>\n","protected":false},"author":1086,"featured_media":131727,"comment_status":"closed","ping_status":"closed","template":"","categories":[907],"tags":[21,33,477],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/136778"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/users\/1086"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/comments?post=136778"}],"version-history":[{"count":2,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/136778\/revisions"}],"predecessor-version":[{"id":136780,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/136778\/revisions\/136780"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media\/131727"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media?parent=136778"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/categories?post=136778"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/tags?post=136778"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/cross-post-tag?post=136778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}