def init(self): super(TextDocument, self).init() self.setUndoManager_(UndoManager.alloc().init()) self.id = doc_id_gen.next() self.icon_cache = (None, None) self.document_attrs = { NSDocumentTypeDocumentAttribute: NSPlainTextDocumentType, NSCharacterEncodingDocumentAttribute: NSUTF8StringEncoding, } self.text_storage = NSTextStorage.alloc().initWithString_attributes_(u"", {}) self.syntaxer = SyntaxCache() self._filestat = None self.props = KVOProxy(self) self.indent_mode = const.INDENT_MODE_SPACE self.indent_size = 4 # should come from syntax definition self.newline_mode = const.NEWLINE_MODE_UNIX self.reset_text_attributes(self.indent_size) # self.save_hooks = [] return self
def init_with_document(self, document): self = super(TextDocumentView, self).init() self._documents = KVOList.alloc().init() self.id = doc_id_gen.next() self.project = None self.document = document self.text_view = None self.scroll_view = None self.props = KVOProxy(self) if isinstance(document, NSDocument): # HACK this should not be conditional (but it is for tests) self.kvolink = KVOLink( [ (document, "properties.indent_mode", self.props, "indent_mode"), (document, "properties.indent_size", self.props, "indent_size"), (document, "properties.newline_mode", self.props, "newline_mode"), (document, "properties.syntaxdef", self.props, "syntaxdef"), (document, "properties.character_encoding", self.props, "character_encoding"), ] ) return self