Red de conocimiento informático - Material del sitio web - Cómo refactorizar código con Vim

Cómo refactorizar código con Vim

Por supuesto, objetivamente hablando, refactorizar código en Vim es una tarea muy difícil. Porque la cadena de herramientas de Vim se centra más en el análisis estático y el análisis de texto. Para una buena herramienta de refactorización, se requieren ciertas capacidades de análisis semántico, y diferentes lenguajes de programación enfrentarán diferentes desafíos. En pocas palabras, la reconstrucción del lenguaje estático es más fácil que la del lenguaje dinámico.

Generalmente, usaré el comando \gg o :GS en exVim para completar la operación de recuperación en la reconstrucción. Después de buscar globalmente nombres de clases, nombres de variables y otra información que deba reconstruirse a través de :GS, realizaré algunas operaciones de filtrado necesarias en el complemento exGlobalSearch. Por ejemplo, si quiero recuperar todos los lugares donde se llama a func_name, en C++, agregaré filtro de búsqueda->func_name y haré una segunda búsqueda de filtro en exGlobalSearch.

Después de completar los resultados de la búsqueda, la operación de reemplazo es más problemática. En exVim, puede reemplazar globalmente los resultados de la búsqueda en exGlobalSearch mediante el comando: SUB nombre1/nombre2/opción. Este comando tiene el mismo formato que :s/nombre1/nombre2/opt en Vim, excepto que lo que hace es realizar la operación :s de Vim en cada resultado de búsqueda filtrado en exGlobalSearch.

Por supuesto, dado que se realiza el reemplazo de texto, personalmente no estoy muy seguro de los resultados del reemplazo. Por lo tanto, cada vez que complete la operación de reconstrucción del reemplazo de nombre, lo verificaré uno por uno de acuerdo con la búsqueda. entradas de exGlobalSearch Reemplace el resultado.

Es cierto que Vim no es una herramienta poderosa para la reconstrucción, pero al realizar operaciones de texto como las anteriores, la carga de trabajo aún es controlable. Para la programación en lenguaje estático, este método es suficiente. Si se trata de programación en lenguaje C, también existen herramientas de análisis estático como cscope (correspondiente al exCscope de exVim) para ayudar a la refactorización y el análisis de código.

Lo que me confunde es el proceso de reconstrucción de lenguajes dinámicos (Lua, Javascript). Actualmente no tengo un método particularmente bueno.