Hi Claudio,

You should never infer that something cannot be done with BBEdit.
BBEdit has an incredibly useful toolset for editing text and code.
So there is certainly a way with regular expressions to do what you want. 

But ... reformatting Python code is not as simple as it sounds because of 
indentation,
line width wrapping, etc.

The recommended *Black* Python formatter is a tool that addresses those 
difficulties.

You can install it on you system with *Homebrew* <https://brew.sh>.

Once *Homebrew *is installed, use it in the terminal to install *black*:

    % brew install black
    
Once *black *is installed, you can use it from the terminal:
    
    % black /path/to/your/python_file.py
  
Or you can also create a BBEdit Text Filter that will allow you to use it 
from BBEdit.

Create a file with this content at this location ~/Library/Application 
Support/BBEdit/Text Filters/black.sh.

#!/usr/bin/env zsh

black -q -

Give the *black.sh* shell script the executable permissions.
You should now have in BBEdit a menu *Text > Apply Text Filter > black* you 
can use to reformat you python files.

If you need help on *black*, in the terminal type:

    % black --help

HTH

Jean Jourdain

On Tuesday, December 26, 2023 at 2:30:07 PM UTC+1 Claudio Pedrazzi wrote:

> Hi Jean
>
> thanks a lot for the reply!
>
> So can I infer from your answer, that BBEdit is not able to do the 
> requested task, even in the paid (pro) version?
>
> Claudio
>
> Il giorno lunedì 25 dicembre 2023 alle 21:09:05 UTC+1 jj ha scritto:
>
>> Claudio,
>>
>> You should take a look at :
>> https://github.com/psf/black
>> HTH
>>
>> Jean Jourdain
>>
>> On Monday, December 25, 2023 at 6:05:52 PM UTC+1 Claudio Pedrazzi wrote:
>>
>>> Hi everyone,
>>> this is my first post here and I hope I am in the right place. I have a 
>>> python code of about a thousand lines, contained in a .py file, and I would 
>>> like to fix, possibly automatically, the indentation (i.e. at the first 
>>> level four characters, then eight, and so on, as the standard requires).
>>> To explain myself better, the code is correct and it works, but some 
>>> parts are indented 2 characters, some 3, and some 4. I am trying to do this 
>>> with BBedit, of which I have the pro version (the paid one). I don't know 
>>> if this is the right way but I use Markup > Utilities > Format and I always 
>>> get an error: Unespected EOF; Document ended in the middle of a tag. Maybe 
>>> I'm not using the right function? Are there ways to get this result?  
>>> If not, are there other free tools to perform this task?
>>> I have to say that I am not very proficient with scripting and such 
>>> extensions, I would like a simple "menu based" solution, of course if it 
>>> exists.
>>>
>>> Thanks a lots in advance
>>> Best regards
>>> Claudio
>>>
>>>
>>>

-- 
This is the BBEdit Talk public discussion group. If you have a feature request 
or need technical support, please email "[email protected]" rather than 
posting here. Follow @bbedit on Twitter: <https://twitter.com/bbedit>
--- 
You received this message because you are subscribed to the Google Groups 
"BBEdit Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/bbedit/e79ac135-dfd9-41d7-a314-0ccda42b49c7n%40googlegroups.com.

Reply via email to