diff --git a/.gitignore b/.gitignore index 1b2aee2eb2b053c606d2d4f1ca665d284e55b6b9..15a09c5f50bded9949f534f245c1f98752f9be99 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,73 @@ bin/ felix-cache .metadata *.versionsBackup -.settings \ No newline at end of file +.settings +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ +/target/ diff --git a/pom.xml b/pom.xml index effa91417aaff0c23afff725b003b42d1d7bfa4a..a4f69e0018ca44f0787744bebc2736c886f08c3a 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>info.kwarc.sally4</groupId> <artifactId>sally4</artifactId> - <version>0.0.4-SNAPSHOT</version> + <version>0.0.6</version> <relativePath>..</relativePath> </parent> diff --git a/src/main/java/info/kwarc/sally4/textbase/TextDocument.java b/src/main/java/info/kwarc/sally4/textbase/TextDocument.java index eb1e777ea8e32acb6a87951c2a7b5e923441a3ed..6f6382d936026e637a5d0fbfdf7127f7fc5c096d 100644 --- a/src/main/java/info/kwarc/sally4/textbase/TextDocument.java +++ b/src/main/java/info/kwarc/sally4/textbase/TextDocument.java @@ -12,6 +12,8 @@ public interface TextDocument { String getText(); SallyClient getClient(); - + TextRange getCurrentSelection(); + void selectRange(TextRange range); + EventListener<AsyncAcceptor<AutocompleteRequest, AutocompleteResponse>> onAutocompleteRequest(EventHandler<AsyncAcceptor<AutocompleteRequest, AutocompleteResponse>> handler); } diff --git a/src/main/java/info/kwarc/sally4/textbase/TextPosition.java b/src/main/java/info/kwarc/sally4/textbase/TextPosition.java new file mode 100644 index 0000000000000000000000000000000000000000..4d25d75c3a1677e391bf55826aad0fe84e427d4f --- /dev/null +++ b/src/main/java/info/kwarc/sally4/textbase/TextPosition.java @@ -0,0 +1,36 @@ +package info.kwarc.sally4.textbase; + +public class TextPosition { + int row; + int col; + + public TextPosition() { + + } + + @Override + public String toString() { + return String.format("(%d,%d)", row, col); + } + + public TextPosition(int row, int col) { + this.row = row; + this.col = col; + } + + public int getCol() { + return col; + } + + public int getRow() { + return row; + } + + public void setCol(int col) { + this.col = col; + } + + public void setRow(int row) { + this.row = row; + } +} diff --git a/src/main/java/info/kwarc/sally4/textbase/TextRange.java b/src/main/java/info/kwarc/sally4/textbase/TextRange.java new file mode 100644 index 0000000000000000000000000000000000000000..64e1b734674b4894072741af3d05a644f91e76bf --- /dev/null +++ b/src/main/java/info/kwarc/sally4/textbase/TextRange.java @@ -0,0 +1,37 @@ +package info.kwarc.sally4.textbase; + +public class TextRange { + TextPosition start, end; + + public TextRange() { + + } + + public TextRange(TextPosition start, TextPosition end) { + this.start = start; + this.end = end; + } + + public TextRange(int start_row, int start_col, int end_row, int end_col) { + this.start = new TextPosition(start_row, start_col); + this.end = new TextPosition(end_row, end_col); + } + + @Override + public String toString() { + return String.format("%s-%s", start, end); + } + + public TextPosition getEnd() { + return end; + } + public TextPosition getStart() { + return start; + } + public void setEnd(TextPosition end) { + this.end = end; + } + public void setStart(TextPosition start) { + this.start = start; + } +} diff --git a/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java b/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java index 98a6d2e2fdacdeefc2e04c21056234630a0d5847..f19aa380666220e7a4a3c8b2a844adb7214b994b 100644 --- a/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java +++ b/src/main/java/info/kwarc/sally4/textbase/impl/TextDocumentImpl.java @@ -2,8 +2,14 @@ package info.kwarc.sally4.textbase.impl; import info.kwarc.sally.comm.text.AutocompleteRequest; import info.kwarc.sally.comm.text.AutocompleteResponse; +import info.kwarc.sally.comm.text.GetCurrentSelection; +import info.kwarc.sally.comm.text.GetCurrentSelectionResponse; +import info.kwarc.sally.comm.text.GetText; +import info.kwarc.sally.comm.text.GetTextResponse; +import info.kwarc.sally.comm.text.SelectText; import info.kwarc.sally4.registration.SallyClient; import info.kwarc.sally4.textbase.TextDocument; +import info.kwarc.sally4.textbase.TextRange; import info.kwarc.sally4.util.AsyncAcceptor; import info.kwarc.sally4.util.EventHandler; import info.kwarc.sally4.util.EventListener; @@ -26,9 +32,8 @@ public class TextDocumentImpl implements TextDocument { @Override public String getText() { - - //client.sendSimpleRequest(req, cls, response); - return null; + GetTextResponse resp = client.sendRequest(new GetText(), GetTextResponse.class); + return resp.getText(); } @Override @@ -42,4 +47,20 @@ public class TextDocumentImpl implements TextDocument { return client; } + @Override + public TextRange getCurrentSelection() { + GetCurrentSelectionResponse response = client.sendRequest(new GetCurrentSelection(), GetCurrentSelectionResponse.class); + return new TextRange(response.getStartrow(), response.getStartcolumn(), response.getEndrow(), response.getEndcolumn()); + } + + @Override + public void selectRange(TextRange range) { + SelectText st = new SelectText(); + st.setStartrow(range.getStart().getRow()); + st.setStartcolumn(range.getStart().getCol()); + st.setEndrow(range.getEnd().getRow()); + st.setEndcolumn(range.getEnd().getCol()); + client.sendEvent(st); + } + }