[www] r296591 - [GSoC] Add two more clang-related projects.
Vassil Vassilev via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 1 02:07:14 PST 2017
Author: vvassilev
Date: Wed Mar 1 04:07:13 2017
New Revision: 296591
URL: http://llvm.org/viewvc/llvm-project?rev=296591&view=rev
Log:
[GSoC] Add two more clang-related projects.
Modified:
www/trunk/OpenProjects.html
Modified: www/trunk/OpenProjects.html
URL: http://llvm.org/viewvc/llvm-project/www/trunk/OpenProjects.html?rev=296591&r1=296590&r2=296591&view=diff
==============================================================================
--- www/trunk/OpenProjects.html (original)
+++ www/trunk/OpenProjects.html Wed Mar 1 04:07:13 2017
@@ -20,6 +20,10 @@
provide information for the type as written in template
instantiations</a>
</li>
+ <li><a href="#clang-shell-autocompletion-support">Shell auto-completion
+ support for clang</a>
+ </li>
+ <li><a href="#clang-diff-tool">Clang-based C/C++ diff tool</a></li>
</ul>
<ul><a href="http://clang-analyzer.llvm.org/">Clang Static Analyzer</a>
<li><a href="#clang-sa-virt-calls">Warn if virtual calls are made from
@@ -315,6 +319,87 @@ Welcome prospective Google Summer of Cod
</p>
</div>
+<!-- *********************************************************************** -->
+<div class="www_subsubsection">
+ <a name="clang-shell-autocompletion-support">Shell auto-completion support for
+ clang.</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="www_text">
+ <p><b>Description of the project: </b>
+ Bash and other shells support typing a partial command and then
+ automatically completing it for the user (or at least providing suggestions
+ how to complete) when pressing the tab key. This is usually only supported
+ for popular programs such as package managers (e.g. pressing tab after
+ typing "apt-get install late" queries the APT package database and lists all
+ packages that start with "late). As of now clang's frontend isn't supported
+ by any common shell.
+
+ <br /> <br />
+ Suggested design approach: The main goal is to support variety of terminals.
+ It would be preferable to keep each shell plugin minimal, enabling easy
+ addition of new plugins. The implementation ought to extend the clang driver
+ switches with a flag to request auto-completion of a partial shell command.
+ <br /> <br />
+
+ The final auto-completion support should contain features such as:
+ <ul>
+ <li>Searching/correcting all flags. For example:
+ <ul>
+ <li>typing <pre>clang -tri<i>[tab]</i></pre> should complete to
+ <pre>-trigraphs</pre>
+ </li>
+ <li>typing <pre>clang -cc1 -dump-decls<i>[tab]</i></pre> should
+ correct <pre>-dump-decls</pre> to <pre>-dump-deserialized-decls</pre>
+ </li>
+ </ul>
+ </li>
+ <li>Searching for valid arguments for the flags. For example:
+ <ul>
+ <li>typing <pre>clang -cc1 -analyze -analyzer-checker=<i>[tab]</i> -fsyntax-only</pre>
+ should list all available static analyzers (eg. core.DivideZero)
+ </li>
+ <li>typing <pre>clang -std=<i>[tab]</i></pre> should list the
+ available language standards.
+ </li>
+ </ul>
+ </li>
+ <li>When the auto-completion for a partial command is ambiguous, all
+ possible completions should be displayed with the relevant description
+ from the "--help" output beside it (<a href="https://www.pablumfication.co.uk/wp-content/uploads/2010/02/fish-lsAutocompleteArguments.jpg">
+ example of this in fish with the command "ls"</a>).
+ </li>
+ </ul>
+ </p>
+
+ <p><b>Expected results: </b>
+ Bash supports abovementioned auto-complete examples on at least OS X and
+ Linux.
+ <p><b>Confirmed Mentor:</b>Vassil Vassilev, Raphael Isemann</p>
+
+ <p><b>Desirable skills:</b>
+ Intermediate knowledge of C++ and shell scripting, Intermediate knowledge of
+ the clang driver.
+ </p>
+</div>
+
+<!-- *********************************************************************** -->
+<div class="www_subsubsection">
+ <a name="clang-diff-tool">Clang-based C/C++ diff tool.</a>
+</div>
+<!-- *********************************************************************** -->
+
+<div class="www_text">
+ <p><b>Description of the project: </b>
+ Every developer has to interact with diff tools daily. The algorithms are
+ usually based on detecting "longest common subsequences", which is agnostic
+ to the file type content. A tool that would understand the structure of the
+ code may provide a better diff experience by being robust against, for
+ example, clang-format changes.
+ </p>
+</div>
+
<!-- *********************************************************************** -->
<div class="www_subsection">
More information about the llvm-commits
mailing list