def diff_documents(self, paths, texts, metadatas=None, workdir='', show=False): self._paths = list(paths) self._texts = list(texts) self._metadatas = metadatas self._workdir = workdir file1, file2 = self._paths if self._is_directory(file1) or self._is_directory(file2): self._highlighted_documents = [ TextDocumentModel(metadata) for metadata in self._metadatas ] else: self.diff_text_documents(show) self._set_document_models() if self._repository: self._staged = self._repository.is_staged(file2) self._status_label.clear() if self._repository.is_modified(file2): self._status_label.setText( '<font color="red">Modified !</font>') if self._staged: self._logger.info("File {} is staged".format(file2)) self._stage_action.blockSignals(True) self._stage_action.setChecked(self._staged) self._stage_action.blockSignals(False)
def highlight_text(raw_text_document, lexer): """ Highlight a text. The parameter *raw_text_document* is a :class:`DiffViewer.RawTextDocument` instance and the parameter *lexer* is a Pygments lexer instance. Return an :class:`DiffViewer.TextDocumentModel` instance. The document has one text block that contains all the fragments. Text fragments use light views. """ highlighted_text = HighlightedText(raw_text_document, lexer) document = TextDocumentModel() text_block = TextBlock(raw_text_document.line_slice) document.append(text_block) for highlighted_fragment in highlighted_text: text_fragment = TextFragment(raw_text_document.light_view(highlighted_fragment.slice), token_type=highlighted_fragment.token) text_block.append(text_fragment) return document
def diff_documents(self, paths, texts, metadatas=None, workdir='', show=False): self._paths = list(paths) self._texts = list(texts) self._metadatas = metadatas self._workdir = workdir file1, file2 = self._paths if self._is_directory(file1) or self._is_directory(file2): self._highlighted_documents = [TextDocumentModel(metadata) for metadata in self._metadatas] else: self.diff_text_documents(show) self._set_document_models()