@@ -116,6 +116,7 @@ def pylsp_format_document(workspace: Workspace, document: Document) -> Generator
116116 Document to apply ruff on.
117117
118118 """
119+
119120 log .debug (f"textDocument/formatting: { document } " )
120121 outcome = yield
121122 result = outcome .get_result ()
@@ -128,34 +129,37 @@ def pylsp_format_document(workspace: Workspace, document: Document) -> Generator
128129 if not settings .format_enabled :
129130 return
130131
131- new_text = run_ruff_format (
132- settings = settings , document_path = document .path , document_source = source
133- )
134-
135- if settings .format :
136- # A second pass through the document with `ruff check` and only the rules
137- # enabled via the format config property. This allows for things like
138- # specifying `format = ["I"]` to get import sorting as part of formatting.
139- new_text = run_ruff (
140- settings = PluginSettings (
141- ignore = ["ALL" ], select = settings .format , executable = settings .executable
142- ),
143- document_path = document .path ,
144- document_source = new_text ,
145- fix = True ,
132+ with workspace .report_progress ("format: ruff" ):
133+ new_text = run_ruff_format (
134+ settings = settings , document_path = document .path , document_source = source
146135 )
147136
148- # Avoid applying empty text edit
149- if not new_text or new_text == source :
150- return
137+ if settings .format :
138+ # A second pass through the document with `ruff check` and only the rules
139+ # enabled via the format config property. This allows for things like
140+ # specifying `format = ["I"]` to get import sorting as part of formatting.
141+ new_text = run_ruff (
142+ settings = PluginSettings (
143+ ignore = ["ALL" ],
144+ select = settings .format ,
145+ executable = settings .executable ,
146+ ),
147+ document_path = document .path ,
148+ document_source = new_text ,
149+ fix = True ,
150+ )
151151
152- range = Range (
153- start = Position (line = 0 , character = 0 ),
154- end = Position (line = len (document .lines ), character = 0 ),
155- )
156- text_edit = TextEdit (range = range , new_text = new_text )
152+ # Avoid applying empty text edit
153+ if not new_text or new_text == source :
154+ return
155+
156+ range = Range (
157+ start = Position (line = 0 , character = 0 ),
158+ end = Position (line = len (document .lines ), character = 0 ),
159+ )
160+ text_edit = TextEdit (range = range , new_text = new_text )
157161
158- outcome .force_result (converter .unstructure ([text_edit ]))
162+ outcome .force_result (converter .unstructure ([text_edit ]))
159163
160164
161165@hookimpl
@@ -174,10 +178,12 @@ def pylsp_lint(workspace: Workspace, document: Document) -> List[Dict]:
174178 List of dicts containing the diagnostics.
175179
176180 """
177- settings = load_settings (workspace , document .path )
178- checks = run_ruff_check (document = document , settings = settings )
179- diagnostics = [create_diagnostic (check = c , settings = settings ) for c in checks ]
180- return converter .unstructure (diagnostics )
181+
182+ with workspace .report_progress ("lint: ruff" ):
183+ settings = load_settings (workspace , document .path )
184+ checks = run_ruff_check (document = document , settings = settings )
185+ diagnostics = [create_diagnostic (check = c , settings = settings ) for c in checks ]
186+ return converter .unstructure (diagnostics )
181187
182188
183189def create_diagnostic (check : RuffCheck , settings : PluginSettings ) -> Diagnostic :
0 commit comments