118 for _env, _getArgs, getExt in self.__supportedLanguages.values(): |
118 for _env, _getArgs, getExt in self.__supportedLanguages.values(): |
119 for ext in getExt(): |
119 for ext in getExt(): |
120 extensions.add(ext) |
120 extensions.add(ext) |
121 return extensions |
121 return extensions |
122 |
122 |
123 def syntaxCheck(self, lang, filename, source): |
123 def syntaxCheck(self, lang, filename, source, *args): |
124 """ |
124 """ |
125 Public method to prepare a syntax check of one source file. |
125 Public method to prepare a syntax check of one source file. |
126 |
126 |
127 @param lang language of the file or None to determine by internal |
127 @param lang language of the file or None to determine by internal |
128 algorithm (str or None) |
128 algorithm |
129 @param filename source filename (string) |
129 @type str or None |
130 @param source string containing the code to check (string) |
130 @param filename source filename |
|
131 @type str |
|
132 @param source string containing the code to check |
|
133 @type str |
|
134 @param args tuple containing additional positional arguments |
|
135 @type tuple |
131 """ |
136 """ |
132 if not lang: |
137 if not lang: |
133 lang = self.__determineLanguage(filename, source) |
138 lang = self.__determineLanguage(filename, source) |
134 if lang not in self.getLanguages(): |
139 if lang not in self.getLanguages(): |
135 return |
140 return |
136 if lang == "MicroPython": |
141 if lang == "MicroPython": |
137 lang = "Python3" |
142 lang = "Python3" |
138 |
143 |
139 data = [source] |
144 data = [source] |
140 # Call the getArgs function to get the required arguments |
145 # Call the getArgs function to get the required arguments |
141 env, args, getExt = self.__supportedLanguages[lang] |
146 env, getArgs, getExt = self.__supportedLanguages[lang] |
142 data.extend(args()) |
147 data.extend(getArgs()) |
|
148 data.extend(args) |
143 self.backgroundService.enqueueRequest( |
149 self.backgroundService.enqueueRequest( |
144 "{0}Syntax".format(lang), env, filename, data |
150 "{0}Syntax".format(lang), env, filename, data |
145 ) |
151 ) |
146 |
152 |
147 def syntaxBatchCheck(self, argumentsList): |
153 def syntaxBatchCheck(self, argumentsList): |
153 """ |
159 """ |
154 data = {} |
160 data = {} |
155 for lang in self.getLanguages(): |
161 for lang in self.getLanguages(): |
156 data[lang] = [] |
162 data[lang] = [] |
157 |
163 |
158 for filename, source in argumentsList: |
164 for arguments in argumentsList: |
159 lang = self.__determineLanguage(filename, source) |
165 # arguments[0]: file name |
|
166 # arguments[1]: source |
|
167 # arguments[2:]: additional arguments |
|
168 lang = self.__determineLanguage(arguments[0], arguments[1]) |
160 if lang not in self.getLanguages(): |
169 if lang not in self.getLanguages(): |
161 continue |
170 continue |
162 else: |
171 else: |
163 jobData = [source] |
172 jobData = [arguments[1]] |
164 # Call the getArgs function to get the required arguments |
173 # Call the getArgs function to get the required arguments |
165 args = self.__supportedLanguages[lang][1] |
174 getArgs = self.__supportedLanguages[lang][1] |
166 jobData.extend(args()) |
175 jobData.extend(getArgs()) |
167 data[lang].append((filename, jobData)) |
176 jobData.extend(arguments[2:]) |
|
177 data[lang].append((arguments[0], jobData)) |
168 |
178 |
169 self.queuedBatches = [] |
179 self.queuedBatches = [] |
170 for lang in self.getLanguages(): |
180 for lang in self.getLanguages(): |
171 if data[lang]: |
181 if data[lang]: |
172 self.queuedBatches.append(lang) |
182 self.queuedBatches.append(lang) |