Haga que el párrafo de relleno en modo python funcione en el párrafo, no en la cadena completa

Pregunta:

Si tengo el siguiente archivo:

#!/usr/bin/env python3
'''
bla.py

Does this and
that_
'''

.. y llame a fill-paragraph con el cusor en _ , luego actúa en toda la cadena de documentos:

#!/usr/bin/env python3
'''bla.py

Does this and that_

'''

en lugar de solo el segundo párrafo.

¿Hay alguna manera de hacer que actúe solo en el párrafo actual, de modo que el resultado sea:

#!/usr/bin/env python3
'''
bla.py

Does this and that_    
'''

(Sé que puedo seleccionar el segundo párrafo y luego llamar fill-paragraph en la región, pero me gustaría que funcione automáticamente en el párrafo actual, no en el comentario actual).

Respuesta:

El modo Python proporciona su propia función de fill-paragraph-function , llamada python-fill-paragraph . Esta función implementa un formato extenso de código más allá de simplemente ajustar párrafos.

Cambiar el estilo de relleno

En particular, formatea cadenas de documentos de acuerdo con python-fill-docstring-style , cuyo valor predeterminado es pep-257 , es decir, formatea cadenas de documentos de acuerdo con PEP 257 donde la primera oración es la misma línea con las comillas iniciales y una línea en blanco es insertado antes de las comillas de cierre.

Su ejemplo muestra un estilo de cadena de documentos diferente. Cambiar python-fill-docstring-style a django

(setq python-fill-docstring-style 'django)

que es el estilo usado en su ejemplo. El modo Python seguirá llenando toda la cadena de documentos, pero conservará su estilo de escritura de cadenas de documentos.

Esta es la configuración que recomendaría.

Realmente llene solo el párrafo

Alternativamente, puede decirle al Modo Python que complete solo el párrafo actual cuando esté en un comentario, personalizando python-fill-string-function . Esta es la función de relleno que usa el modo Python cuando está dentro de una cadena. La siguiente configuración hace que el modo Python use el comportamiento de relleno predeterminado en las cadenas de documentos:

(setq python-fill-string-function (lambda (&optional justify region)
                                    (let ((fill-paragraph-function nil))
                                      (fill-paragraph justify region))))

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım