forked from continuoustests/OpenIDE
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathOI_LANGUAGE_INTEGRATION
More file actions
129 lines (98 loc) · 4.05 KB
/
OI_LANGUAGE_INTEGRATION
File metadata and controls
129 lines (98 loc) · 4.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
OpenIDE.Net integrates with programming languages through both executable output and tcp communication.
------------------------------------------------------- GENERAL OUTPUT ---------------------------------------------------------
Error description with no line separators
RESPONSE FORMAT:
error|ERROR_DESCRIPTION
------------------------------------------------------- GENERAL OUTPUT ---------------------------------------------------------
Warnings with no line separators
RESPONSE FORMAT:
warning|COMMENT
------------------------------------------------------- GENERAL OUTPUT ---------------------------------------------------------
Commands
RESPONSE FORMAT:
command|editor goto ...
----------------------------------------------------- REQUIRED INTEGRATION -----------------------------------------------------
Initialize is sent to the plugin when the code engine starts. If the plugin choooses
to respond with initialized the process will be kept open and all requests will be
sent through stdin, stdout for as long as the code engine lives.
PARAMETER:
initialize KEY_PATH
RESPONSE
(nothing)
initialized
After responding with initialized all requests must be terminated with:
end-of-conversation
Shutdown is sent to the plugin when the plugin is ment to exit.
PARAMETER:
shutdown
Getting command definitions for this language extension
PARAMETER:
get-command-definitions
RESPONSE FORMAT:
// Wrapping the command name with [] means the command is optional
// This is the definition response for the following commands:
// new file FILE_NAME
// new directory DIR_NAME
new|"Template command for new file"
file|"Creates a new file"
FILE_NAME|"The path/name of the file you want to create" end
end
directory|"Creates a new directory"
DIR_NAME|"Long description where every line
will be trimmed and new line is replaced by space" end
end
end
Suppoerted file extensions. This determintes what files will be sent over for change tracking
PARAMETER
crawl-file-types
RESPONSE FORMAT:
.csproj|.cs
Crawl directories and/or files
PARAMETER:
crawl-source PATH_TO_FILE_CONTIAINING_LINE_PR_FILE_OR_DIR_TO_CRAWL
RESPONSE FORMAT:
// Project is optional. Other than that the hierarchy is as follows
// Indentation is only to show hierarchy not required in output
// Arguments in [] are optional
// typesearch => Is searchable under typesearch
// filesearch => Is searchable under file browse list
[project|PROJECT-PATH|CUSTOM-JSON-INFO [|filesearch]]
file|FILE-PATH [|filesearch]
signature|PARENT|SIGNATURE|NAME|TYPE|SCOPE|LINE|COLUMN|CUSTOM-JSON-INFO [|typesearch]
reference|SIGNATURE|LINE|COLUMN|CUSTOM-JSON-INFO
Retrieve signature from a location inside code
PARAMETER:
signature-from-position PATH_TO_FILE|LINE|COLUMN
RESPONSE FORMAT (fixed lines):
// The response have fixed lines as shown below
// The position is the start and end position of
// the reference under the position passed to it
// If not found return nothing
FILE_CONTAINING_REFERENCED_SIGNATURE
REFERENCED_SIGNATURE
REFERENCE_START_LINE|REFERENCE_START_COLUMN
REFERENCE_END_LINE|REFERENCE_END_COLUMN
Go to definition
PARAMETER:
go-to-definition PATH_TO_FILE|LINE|COLUMN
RESPONSE FORMAT
Whatever specified in command definitions. Hopefully something like editor goto
Retrieve members from signature
PARAMETER:
members-from-signature SIGNATURE
RESPONSE FORMAT:
// A list if available members with descriptions
// One line pr member. In the description part new line
// is represented by [[newline]]
SomeProperty|(Int) Some number
Parse(string[])|(Returns string) Parses lines[[newline]]\tstring[] Lines
Various language plugin commands. This would be any command handled by the plugin
PARAMETER
Whatever specified in command definitions
RESPONSE FORMAT:
// Any supported oi commands you want executed
// The error and comment general output commands are also supported
// Below is a simple sample
File /home/me/myfile created
command|editor goto /home/me/myfile|3|18
command|editor setfocus