@Override public void read(Reader in, Document doc, int pos) throws IOException, BadLocationException { BufferedReader br = new BufferedReader(in); br.mark(1024); char[] buffer = new char[80]; br.read(buffer); br.reset(); Language language = languageManager.getLanguage( new String(buffer), (File) doc.getProperty(Document.StreamDescriptionProperty)); SourceDocument document = (SourceDocument) doc; document.setLanguage(language); int offset = 0; String line; while ((line = br.readLine()) != null) { document.insertString(offset, line + "\n", null); offset += line.length() + 1; } }