<div dir="ltr"><div>Hi,</div><div>I am posting an initial design plan to be able to integrate 3rd party code checker's into IDLE. </div><div><br></div><div><br></div><div>1. UI Part </div><div>OutputWindow already has a 'goto file/line' feature, where a user can open a file/line. This feature will be used. Depending on the 3rd party api, there may be a need to reformat the results to match the regular expressions of OutputWindow. Some issues like ensuring the file path is present in the output of the 3rd party checker must be handled on a case-to-case basis.</div>

<div><br></div><div>2.Working logic</div><div>Each 3rd party api will store its settings(IDLE related) in the same way as extension config is stored currently(config-extensions.def), but, obviously in a different file, meant exclusively for storing the settings for 3rd party api settings.</div>

<div>It could contain details like whether it is enabled, the path/file to call the api, the arguments to be passed etc. It could also have the details of the function to be called if there is need for reformatting.</div>

<div>The location and name of the config file is to be discussed.</div><div><br></div><div>With these settings in place, subprocess.Popen will be used to run the 3rd party code checker and send the result to an OutputWindow instance with/without reformattting.</div>

<div><br></div><div><a href="http://bugs.python.org/issue3068">http://bugs.python.org/issue3068</a> provides option to modify config via GUI.<br></div><div>This could be used for the current purpose as well.</div><div><br>

</div><div>While we could add support for as many 3rd party code checkers, there is a need to document the process to enable others to integrate their extensions. This will be done once things are ready.</div><div>If i missed out something i will reply to this thread.<br>

</div><div><br></div><div><br></div><div>Looking forward to your comments and feedback.</div><div><br></div><div>Regards</div><div>Saimadhav Heblikar</div><div><br></div><div><br></div><div><br></div></div>