<div dir="ltr"><p>Hi mentors,</p>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">As per my proposal (Section 5.2, Weeks 1–2), I've designed and implemented the</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">core data structures and interfaces for the new Knowledge Base & Cache.</span></p>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">I've added two new files:</span></p>
<ul><li>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out"><code>include/basic/idecodecompletiontypes.hxx</code>: Contains enums (SymbolKind,</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">ScopeKind, AccessModifier) and structs (ParamInfo, DimensionInfo,</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">SymbolInfo).</span></p>
</li><li>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out"><code>include/basic/idecodecompletioncache.hxx</code>: Defines the main cache class</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">interface.</span></p>
</li></ul>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">A corresponding implementation file <code><b>idecodecompletioncache.cxx</b></code> may be added.</span></p>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">The existing <code></code></span><span style="font-family:monospace">basic/source/classes<span class="gmail_default">/</span></span><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out"><code>codecompletecache.cxx</code> includes:</span></p>
<ul><li>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out"><code>CodeCompleteOptions</code>: Manages user-configurable options related to code</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">completion stored via <code>officecfg</code>.</span></p>
</li><li>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out"><code>CodeCompleteDataCache</code>: Currently limited, storing variable names and types</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">as strings.</span></p>
</li></ul>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">To support new features, we need to store detailed <code>SymbolInfo</code> for all</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">entities (variables, functions, UDTs, classes, UNO objects, libraries,</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">modules). This includes full signatures, hierarchical relationships, and</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">precise scope and origin information.</span></p>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">Refactoring <code>CodeCompleteDataCache</code> would <span class="gmail_default" style="font-family:comic sans ms,sans-serif"></span><span class="gmail_default" style="font-family:arial,sans-serif">mean</span> a complete redesign<span class="gmail_default" style="font-family:arial,sans-serif">?</span></span></p><p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out"><span class="gmail_default" style="font-family:arial,sans-serif">So should I be doing that or go by creating a new file for our objective?</span></span></p>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out"><br></span></p><p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">I also found prior GSoC work on the Basic IDE:</span></p>
<ul><li>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out"><a href="https://cgit.freedesktop.org/libreoffice/core/log/?h=feature/gsoc-basic-ide-completion-and-other-bits" rel="noopener noreferrer">https://cgit.freedesktop.org/libreoffice/core/log/?h=feature/gsoc-basic-ide-completion-and-other-bits</a></span></p>
</li><li>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out"><a href="https://lists.freedesktop.org/archives/libreoffice/2013-July/054488.html" rel="noopener noreferrer">https://lists.freedesktop.org/archives/libreoffice/2013-July/054488.html</a></span></p>
</li></ul>
<p><span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">The <code>CodeCompleteOptions</code> class will be reused and likely extended for managing</span><br>
<span class="gmail-relative gmail--mx-px gmail-my-[-0.2rem] gmail-rounded gmail-px-px gmail-py-[0.2rem] gmail-transition-colors gmail-duration-100 ease-in-out">user settings related to these new features<span class="gmail_default" style="font-family:comic sans ms,sans-serif"></span><span class="gmail_default" style="font-family:arial,sans-serif">?</span></span></p><div><span class="gmail_signature_prefix">-- </span></div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-family:monospace"><b>Regards,</b></span></div><div><span style="font-family:monospace;color:rgb(153,0,255)"><b>Devansh</b></span><br></div></div></div></div>