Recent Posts

Pages: [1] 2 3 4 5 6 ... 10
1
Using Code::Blocks / Open files list single click
« Last post by Krice on Today at 12:25:05 pm »
I think open files list would work better if it had single click select to choose the source file rather than double click. It's driving me crazy to have to double click to view the file, I guess mainly because how it's implemented in Visual Studio (the right way). I tried to search if anyone had mentioned this, but no one, really? Also, Visual Studio doesn't even show tabs for files, because if you have them in the list it's not needed, because you can just select the file from the list. I'm using 20.03.
2
Using Code::Blocks / Re: Hiccups while typing (continuation)
« Last post by ollydbg on Today at 08:01:43 am »
@ ollydbg

Thanks for doing all this testing.
I moved the forced TempParse update to before the .conf write.
That seemed to do the trick.

When you get a chance, would you test to see if I'm doing any better. So far, I'm batting 0 for 5.
...
...
I'll remove all the "**debugging**" tags and statements before any commit.

Sorry, it looks like this patch still has some errors, here is the steps. You see, I don't load any cbp files, but just open the debugee C::B for testing.

1, start the debuggee C::B
2, change some CC setting(from the code completion plugin's setting dialog)
3, change some CC setting(from the code completion plugin's setting dialog)
4, exit the debugee C::B

It looks like when the setting dialog's OnApply() function get called for the TempParser, the below code will be called:

Code
    if ( (projectsCount==0) and isTempParser and globalOptionChanged)
    {
        // When no projects exists but the CB main settings have been changed,
        // force the TempParser to reread settings/options else stale ones
        // will be set and displayed on the next use of MenuBar/Settings/Editor/CodeCompletion dialog
        // #warning CodeCompletion: Remove the **Debugging** statements before commiting
        // bool oldWhileTypingStatus = m_Options.whileTyping; // **Debugging** //(ph 2025/02/08)
        ReadOptions();  //force TempParser to update its settings
        // bool actualWhileTypingStatus = m_Options.whileTyping; // **Debugging** //(ph 2025/02/08)
        allowGlobalUpdate = true;
    }

So, in the step 3, when I open the CC's setting dialog, I see the setting are not saved in the step2.

3
Using Code::Blocks / Re: Hiccups while typing (continuation)
« Last post by Pecan on Today at 12:22:20 am »
@ ollydbg

Thanks for doing all this testing.
I moved the forced TempParse update to before the .conf write.
That seemed to do the trick.

When you get a chance, would you test to see if I'm doing any better. So far, I'm batting 0 for 5.

Code
Index: ccoptionsdlg.cpp
===================================================================
--- ccoptionsdlg.cpp (revision 13610)
+++ ccoptionsdlg.cpp (working copy)
@@ -183,6 +183,12 @@
 
 void CCOptionsDlg::OnApply()
 {
+    cbProject* pProject = Manager::Get()->GetProjectManager()->GetActiveProject();
+     // Remember the project that changed the .conf data //(ph 2025/02/04)
+    m_ParseManager->SetOptsChangedByProject(pProject);
+    // Renember the Parser that changed the .conf data //(ph 2025/02/04)
+    m_ParseManager->SetOptsChangedByParser(&(m_ParseManager->GetParser())); //(ph 2025/02/07)
+
     ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("code_completion"));
 
     // -----------------------------------------------------------------------
Index: parsemanager.h
===================================================================
--- parsemanager.h (revision 13610)
+++ parsemanager.h (working copy)
@@ -9,8 +9,8 @@
 #include "parsemanager_base.h"
 #include "parser/parser.h"
 
-#include <queue>
-#include <map>
+//unused #include <queue>
+// unused #include <map>
 #include <memory>
 #include <unordered_map>
 
@@ -258,6 +258,14 @@
     void SetSymbolsWindowHasFocus(bool trueOrFalse){ m_SymbolsWindowHasFocus = trueOrFalse;}
     bool GetSymbolsWindowHasFocus(){return m_SymbolsWindowHasFocus;}
 
+    // Set or return Project that changed "Global setting" in workspace
+    cbProject* GetOptsChangedByProject(){ return m_pOptsChangedProject;}
+    void SetOptsChangedByProject(cbProject* pProject){m_pOptsChangedProject = pProject;}
+    // Set or return Parser that changed "Global setting" in Single File workspace
+    ParserBase* GetOptsChangedByParser(){ return m_pOptsChangedParser;}
+    void SetOptsChangedByParser(ParserBase* pParserBase){m_pOptsChangedParser = pParserBase;}
+    ParserBase* GetTempParser(){return m_TempParser;}
+
 protected:
     /** When a Parser is created, we need a full parsing stage including:
      * 1, parse the priority header files firstly.
@@ -474,11 +482,12 @@
      */
     bool RemoveProjectFromParser(cbProject* project);
 
+
 private:
     typedef std::pair<cbProject*, ParserBase*> ProjectParserPair;
     typedef std::list<ProjectParserPair>       ParserList;
 
-    /** a list holing all the cbp->parser pairs, if in one parser per project mode, there are many
+    /** a list holding all the cbp->parser pairs, if in one parser per project mode, there are many
      * many pairs in this list. In one parser per workspace mode, there is only one pair, and the
      * m_ParserList.begin()->second is the common parser for all the projects in workspace.
      */
@@ -527,6 +536,11 @@
     bool m_ClassBrowserViewIsStale = true;
     bool m_SymbolsWindowHasFocus = false;
 
+    //The latest project to change the .conf file //(ph 2025/02/04)
+    cbProject* m_pOptsChangedProject = nullptr;
+    //The latest parser to change the .conf file //(ph 2025/02/04)
+    ParserBase* m_pOptsChangedParser = nullptr;
+
 };
 
 #endif // PARSEMANAGER_H
Index: parser/parser.cpp
===================================================================
--- parser/parser.cpp (revision 13610)
+++ parser/parser.cpp (working copy)
@@ -32,9 +32,10 @@
 
 #include "parser.h"
 #include "parserthreadedtask.h"
+#include "../parsemanager.h" //(ph 2025/02/04)
 
 #include "../classbrowser.h"
-#include "../classbrowserbuilderthread.h"
+//unused - #include "../classbrowserbuilderthread.h"
 
 
 #ifndef CB_PRECOMP
@@ -921,19 +922,66 @@
 
 void Parser::WriteOptions()
 {
+     //(ph 2025/02/06) Global settings bug fix
+     //https://forums.codeblocks.org/index.php/topic,25955 Hiccups while typing
+    // Assemble status to check if a Parser or Project changed a global setting.
+    ProjectManager* pPrjMgr = Manager::Get()->GetProjectManager();
+    cbProject*      pActiveProject = pPrjMgr->GetActiveProject();
+    ParseManager*   pParseMgr = (ParseManager*)m_Parent;
+    ParserBase*     pParser = &(pParseMgr->GetParser());
+    ParserBase*     pTempParser = pParseMgr->GetTempParser();
+    cbProject*      pOptsChangerProject = pParseMgr->GetOptsChangedByProject();
+
+    int  projectsCount = pPrjMgr->GetProjects()->size();
+    bool isTempParser = pTempParser == pParser;
+    bool globalOptionChanged = pParseMgr->GetOptsChangedByParser() or pParseMgr->GetOptsChangedByProject();
+
     ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("code_completion"));
 
-    // Page "Code Completion"
-    cfg->Write(_T("/use_SmartSense"),                m_Options.useSmartSense);
-    cfg->Write(_T("/while_typing"),                  m_Options.whileTyping);
+    // **Debugging** use this global to verify logic (cached values)
+    bool OldWhileTypingStatus = m_Options.whileTyping;
+    asm("nop"); // **Debugging** set brkpt here
 
-    // Page "C / C++ parser"
-    cfg->Write(_T("/parser_follow_local_includes"),  m_Options.followLocalIncludes);
-    cfg->Write(_T("/parser_follow_global_includes"), m_Options.followGlobalIncludes);
-    cfg->Write(_T("/want_preprocessor"),             m_Options.wantPreprocessor);
-    cfg->Write(_T("/parse_complex_macros"),          m_Options.parseComplexMacros);
-    cfg->Write(_T("/platform_check"),                m_Options.platformCheck);
+    // Do not allow stale parser settings to change the global settings
+    bool allowGlobalUpdate = false;
+    if ( (projectsCount == 0) and globalOptionChanged)
+        allowGlobalUpdate = true;   //Single file settings changes
+    if (projectsCount and (pOptsChangerProject == pActiveProject) )
+        allowGlobalUpdate = true;   // changes made by a project
+    if ( (projectsCount==0) and isTempParser and globalOptionChanged)
+    {
+        // When no projects exists but the CB main settings have been changed,
+        // force the TempParser to reread settings/options else stale ones
+        // will be set and displayed on the next use of MenuBar/Settings/Editor/CodeCompletion dialog
+        #warning CodeCompletion: Remove the **Debugging** statements before commiting
+        bool oldWhileTypingStatus = m_Options.whileTyping; // **Debugging** //(ph 2025/02/08)
+        ReadOptions();  //force TempParser to update its settings
+        bool actualWhileTypingStatus = m_Options.whileTyping; // **Debugging** //(ph 2025/02/08)
+        allowGlobalUpdate = true;
+    }
+    if (not globalOptionChanged)
+        allowGlobalUpdate = false; // no global settings have changed
 
+    if (allowGlobalUpdate)
+    {
+        // Page "Code Completion"
+        cfg->Write(_T("/use_SmartSense"),                m_Options.useSmartSense);
+        cfg->Write(_T("/while_typing"),                  m_Options.whileTyping);
+
+        // Page "C / C++ parser"
+        cfg->Write(_T("/parser_follow_local_includes"),  m_Options.followLocalIncludes);
+        cfg->Write(_T("/parser_follow_global_includes"), m_Options.followGlobalIncludes);
+        cfg->Write(_T("/want_preprocessor"),             m_Options.wantPreprocessor);
+        cfg->Write(_T("/parse_complex_macros"),          m_Options.parseComplexMacros);
+        cfg->Write(_T("/platform_check"),                m_Options.platformCheck);
+    }
+    if ((projectsCount == 0) and isTempParser and globalOptionChanged)
+    {
+        // The global settings changed status can now be reset
+        pParseMgr->SetOptsChangedByParser(nullptr);
+        pParseMgr->SetOptsChangedByProject(nullptr);
+    }
+
     // Page "Symbol browser"
     cfg->Write(_T("/browser_show_inheritance"),      m_BrowserOptions.showInheritance);
     cfg->Write(_T("/browser_expand_ns"),             m_BrowserOptions.expandNS);
Index: resources/manifest.xml
===================================================================
--- resources/manifest.xml (revision 13610)
+++ resources/manifest.xml (working copy)
@@ -3,7 +3,7 @@
     <SdkVersion major="1" minor="10" release="0" />
     <Plugin name="CodeCompletion">
         <Value title="Code completion" />
-        <Value version="1.0.5 24/01/29" />
+        <Value version="1.0.6 25/02/8" />
         <Value description="This plugin provides a symbols browser for your projects and code-completion inside the editor.
 
 


I'll remove all the "**debugging**" tags and statements before any commit.
4
Using Code::Blocks / Re: Hiccups while typing (continuation)
« Last post by Pecan on Yesterday at 05:29:25 pm »
I debugged your patch, and I found it still has logic errors, here is my steps:

1, start the debuggee C::B
2, load a cbp file
3, change some CC setting(from the code completion plugin's setting dialog)
4, close the cbp
5, change some CC setting(from the code completion plugin's setting dialog)
6, exit the debugee C::B

Note that from my point of view, in step 5, when I open the CC setting dialog, and change some settings, when I close the dialog, I need to "Save the setting to the configure file).
But actually, it is NOT.

It seems I'm not forcing TempParser to update soon enough.
This is just no fun. 8>{
5
Development / Re: %I64d or %lld in the plugins\compilergcc\depslib\src\cache.c
« Last post by ollydbg on Yesterday at 02:11:40 pm »
Can anyone help to test the below patch, in my 64bit gcc compiler under windows system, it remove the build warnings:

Code
From 38063feccee0827493c153f71c4e102f9d15428c Mon Sep 17 00:00:00 2001
From: asmwarrior <hidden@example.com>
Date: Sat, 8 Feb 2025 11:09:06 +0800
Subject: [PATCH] - compilergcc plugin: fix build warning in the depslib, see
 discussion here:

%I64d or %lld in the plugins\compilergcc\depslib\src\cache.c
https://forums.codeblocks.org/index.php/topic,25960.0.html
---
 src/plugins/compilergcc/depslib/src/cache.c | 23 +++++++++++++++------
 src/plugins/compilergcc/depslib/src/hash.c  |  7 +++++--
 2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/src/plugins/compilergcc/depslib/src/cache.c b/src/plugins/compilergcc/depslib/src/cache.c
index 8e90756f..1d2f8211 100644
--- a/src/plugins/compilergcc/depslib/src/cache.c
+++ b/src/plugins/compilergcc/depslib/src/cache.c
@@ -16,6 +16,9 @@
 #include "newstr.h"
 #include "cache.h"
 
+/* C::B patch: Compatibility with 64 bit compiler / OS*/
+# include "inttypes.h" // PRId64
+
 #include "depslib.h" /* for struct depsStats */
 extern struct depsStats g_stats;
 
@@ -138,10 +141,14 @@ void cache_read(const char *path)
  }
 
  /* C::B patch: Compatibility with 64 bit compiler / OS */
- #if defined(_WIN64)
- sscanf(buf, "%I64d %n", &timeval, &n);
+ #if  (_USE_LONG_TIME_T)
+ sscanf(buf, "%ld %n", &timeval, &n);
  #else
- sscanf(buf, "%lld %n", &timeval, &n);
+ #if defined(PRId64)
+ sscanf(buf, "%" PRId64 " %n", &timeval, &n);
+ #else
+ sscanf(buf, "%lld %n", &timeval, &n);
+ #endif
  #endif
  h = hdr_enter (buf + n);
  h->time = timeval;
@@ -169,10 +176,14 @@ void cache_write(const char *path)
  {
  LIST *l;
  /* C::B patch: Compatibility with 64 bit compiler / OS */
- #if defined(_WIN64)
- fprintf(f, "%I64d %s\n", h->time, h->file);
+ #if  (_USE_LONG_TIME_T)
+ fprintf(f, "%ld %s\n", h->time, h->file);
  #else
- fprintf(f, "%lld %s\n", h->time, h->file);
+ #if defined(PRId64)
+ fprintf(f, "%" PRId64 " %s\n", h->time, h->file);
+ #else
+ fprintf(f, "%lld %s\n", h->time, h->file);
+ #endif
  #endif
  for (l = h->includes; l; l = list_next (l))
  {
diff --git a/src/plugins/compilergcc/depslib/src/hash.c b/src/plugins/compilergcc/depslib/src/hash.c
index 78823e43..57e00297 100644
--- a/src/plugins/compilergcc/depslib/src/hash.c
+++ b/src/plugins/compilergcc/depslib/src/hash.c
@@ -42,6 +42,9 @@
 # include "jam.h"
 # include "hash.h"
 
+/* C::B patch: Compatibility with 64 bit compiler / OS*/
+# include "inttypes.h" // PRId64
+
 /* Header attached to all data items entered into a hash table. */
 
 struct hashhdr {
@@ -266,8 +269,8 @@ hashstat( struct hash *hp )
 #ifdef __LP64__ /* avoid warning on 64-bit machines */
  printf( "%s table: %d+%d+%d (%dK+%luK) items+table+hash, %f density\n",
 /* C::B patch: Compatibility with 64 bit compiler / OS*/
-#elif defined(_WIN64)
- printf( "%s table: %d+%d+%d (%dK+%I64dK) items+table+hash, %f density\n",
+#elif defined(PRId64)
+ printf( "%s table: %d+%d+%d (%dK+%" PRId64 "K) items+table+hash, %f density\n",
 #else
  printf( "%s table: %d+%d+%d (%dK+%dK) items+table+hash, %f density\n",
 #endif
--
2.42.0.windows.2


6
Using Code::Blocks / Re: Hiccups while typing (continuation)
« Last post by ollydbg on Yesterday at 02:02:57 pm »
I debugged your patch, and I found it still has logic errors, here is my steps:

1, start the debuggee C::B
2, load a cbp file
3, change some CC setting(from the code completion plugin's setting dialog)
4, close the cbp
5, change some CC setting(from the code completion plugin's setting dialog)
6, exit the debugee C::B

Note that from my point of view, in step 5, when I open the CC setting dialog, and change some settings, when I close the dialog, I need to "Save the setting to the configure file).
But actually, it is NOT.

7
Using Code::Blocks / Using Qt 6
« Last post by Groundbounce on Yesterday at 01:16:17 pm »
I see that code blocks can create a Qt project but this seems to be for Qt 4 and 5. The current version of Qt is 6. Qt 6 is installed on my system so is it reasonable to assume that if I create a standard C++ project and include the Qt header files this will work?
8
Using Code::Blocks / Re: Hiccups while typing (continuation)
« Last post by ollydbg on Yesterday at 08:42:14 am »
Thanks for your work.

Quote
I've tested it with single and mult-project workspaces, Single file workspace and empty ones as well.

single project workspace: a workspace only has one project.
mult-project workspace: a workspace has many projects.
Single file workspace: a single Parser will hold all the tokens in the whole workspace, whenever the workspace has one projects or more projects.
empty: no workspace is opened, neither a project is opened, in this case, the temp parser instance will be used.

Am I correct about the above description?
9
Using Code::Blocks / Re: Hiccups while typing (continuation)
« Last post by Pecan on February 07, 2025, 09:43:47 pm »
@ ollydbg

Please evaluate this patch.
I've tested it with single and mult-project workspaces, Single file workspace and empty ones as well.

I think I've followed your outline (previous msg) to guard against stowing any stale global status while always allowing ClassBrowser status to be updated.


Code
Index: ccoptionsdlg.cpp
===================================================================
--- ccoptionsdlg.cpp (revision 13610)
+++ ccoptionsdlg.cpp (working copy)
@@ -183,6 +183,12 @@
 
 void CCOptionsDlg::OnApply()
 {
+    cbProject* pProject = Manager::Get()->GetProjectManager()->GetActiveProject();
+     // Remember the project that changed the .conf data //(ph 2025/02/04)
+    m_ParseManager->SetOptsChangedByProject(pProject);
+    // Renember the Parser that changed the .conf data //(ph 2025/02/04)
+    m_ParseManager->SetOptsChangedByParser(&(m_ParseManager->GetParser())); //(ph 2025/02/07)
+
     ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("code_completion"));
 
     // -----------------------------------------------------------------------
Index: parsemanager.h
===================================================================
--- parsemanager.h (revision 13610)
+++ parsemanager.h (working copy)
@@ -9,8 +9,8 @@
 #include "parsemanager_base.h"
 #include "parser/parser.h"
 
-#include <queue>
-#include <map>
+//unused #include <queue>
+// unused #include <map>
 #include <memory>
 #include <unordered_map>
 
@@ -258,6 +258,14 @@
     void SetSymbolsWindowHasFocus(bool trueOrFalse){ m_SymbolsWindowHasFocus = trueOrFalse;}
     bool GetSymbolsWindowHasFocus(){return m_SymbolsWindowHasFocus;}
 
+    // Set or return Project that changed "Global setting" in workspace
+    cbProject* GetOptsChangedByProject(){ return m_pOptsChangedProject;}
+    void SetOptsChangedByProject(cbProject* pProject){m_pOptsChangedProject = pProject;}
+    // Set or return Parser that changed "Global setting" in Single File workspace
+    ParserBase* GetTempParser(){return m_TempParser;}
+    ParserBase* GetOptsChangedByParser(){ return m_pOptsChangedParser;}
+    void SetOptsChangedByParser(ParserBase* pParserBase){m_pOptsChangedParser = &(GetParser());}
+
 protected:
     /** When a Parser is created, we need a full parsing stage including:
      * 1, parse the priority header files firstly.
@@ -474,11 +482,12 @@
      */
     bool RemoveProjectFromParser(cbProject* project);
 
+
 private:
     typedef std::pair<cbProject*, ParserBase*> ProjectParserPair;
     typedef std::list<ProjectParserPair>       ParserList;
 
-    /** a list holing all the cbp->parser pairs, if in one parser per project mode, there are many
+    /** a list holding all the cbp->parser pairs, if in one parser per project mode, there are many
      * many pairs in this list. In one parser per workspace mode, there is only one pair, and the
      * m_ParserList.begin()->second is the common parser for all the projects in workspace.
      */
@@ -527,6 +536,11 @@
     bool m_ClassBrowserViewIsStale = true;
     bool m_SymbolsWindowHasFocus = false;
 
+    //The latest project to change the .conf file //(ph 2025/02/04)
+    cbProject* m_pOptsChangedProject = nullptr;
+    //The latest parser to change the .conf file //(ph 2025/02/04)
+    ParserBase* m_pOptsChangedParser = nullptr;
+
 };
 
 #endif // PARSEMANAGER_H
Index: parser/parser.cpp
===================================================================
--- parser/parser.cpp (revision 13610)
+++ parser/parser.cpp (working copy)
@@ -32,9 +32,10 @@
 
 #include "parser.h"
 #include "parserthreadedtask.h"
+#include "../parsemanager.h" //(ph 2025/02/04)
 
 #include "../classbrowser.h"
-#include "../classbrowserbuilderthread.h"
+//unused - #include "../classbrowserbuilderthread.h"
 
 
 #ifndef CB_PRECOMP
@@ -921,19 +922,59 @@
 
 void Parser::WriteOptions()
 {
+     //(ph 2025/02/06)
+    // Assemble status to determine if a Parser or Project changed a global setting.
+    ProjectManager* pPrjMgr = Manager::Get()->GetProjectManager();
+    cbProject*      pActiveProject = pPrjMgr->GetActiveProject();
+    ParseManager*   pParseMgr = (ParseManager*)m_Parent;
+    ParserBase*     pParser = &(pParseMgr->GetParser());
+    ParserBase*     pTempParser = pParseMgr->GetTempParser();
+    cbProject*      pOptsChangerProject = pParseMgr->GetOptsChangedByProject();
+
+    int  projectsCount = pPrjMgr->GetProjects()->size();
+    bool isTempParser  = (pParser == pTempParser);
+    bool globalOptionChanged = pParseMgr->GetOptsChangedByParser() or pParseMgr->GetOptsChangedByProject();
+
     ConfigManager* cfg = Manager::Get()->GetConfigManager(_T("code_completion"));
 
-    // Page "Code Completion"
-    cfg->Write(_T("/use_SmartSense"),                m_Options.useSmartSense);
-    cfg->Write(_T("/while_typing"),                  m_Options.whileTyping);
+    // **Debugging** use this global to verify logic
+    // bool parseWhileTypingStatus = m_Options.whileTyping;
 
-    // Page "C / C++ parser"
-    cfg->Write(_T("/parser_follow_local_includes"),  m_Options.followLocalIncludes);
-    cfg->Write(_T("/parser_follow_global_includes"), m_Options.followGlobalIncludes);
-    cfg->Write(_T("/want_preprocessor"),             m_Options.wantPreprocessor);
-    cfg->Write(_T("/parse_complex_macros"),          m_Options.parseComplexMacros);
-    cfg->Write(_T("/platform_check"),                m_Options.platformCheck);
+    // Do not allow stale parser settings to change the global settings
+    bool allowGlobalUpdate = false;
+    if ( (projectsCount == 0) and globalOptionChanged)
+        allowGlobalUpdate = true;   //Single file settings changes
+    if (projectsCount and (pOptsChangerProject == pActiveProject) )
+        allowGlobalUpdate = true;   // changes made by a project
+    if ( (projectsCount==0) and isTempParser and globalOptionChanged)
+        allowGlobalUpdate = false; // TempParser has stale settings on Close()
+    if (not globalOptionChanged)
+        allowGlobalUpdate = false; // no global settings have changed
 
+    if (allowGlobalUpdate)
+    {
+        // Page "Code Completion"
+        cfg->Write(_T("/use_SmartSense"),                m_Options.useSmartSense);
+        cfg->Write(_T("/while_typing"),                  m_Options.whileTyping);
+
+        // Page "C / C++ parser"
+        cfg->Write(_T("/parser_follow_local_includes"),  m_Options.followLocalIncludes);
+        cfg->Write(_T("/parser_follow_global_includes"), m_Options.followGlobalIncludes);
+        cfg->Write(_T("/want_preprocessor"),             m_Options.wantPreprocessor);
+        cfg->Write(_T("/parse_complex_macros"),          m_Options.parseComplexMacros);
+        cfg->Write(_T("/platform_check"),                m_Options.platformCheck);
+    }
+    if ((projectsCount == 0) and isTempParser and globalOptionChanged)
+    {
+        // When no projects exists but the CB main settings have been changed,
+        // force the TempParser to reread settings/options else stale ones
+        // will be displayed on the next use of MenuBar/Settings/Editor/CodeCompletion dialog
+        ReadOptions();
+        // The global settings changed status can now be reset
+        pParseMgr->SetOptsChangedByParser(nullptr);
+        pParseMgr->SetOptsChangedByProject(nullptr);
+    }
+
     // Page "Symbol browser"
     cfg->Write(_T("/browser_show_inheritance"),      m_BrowserOptions.showInheritance);
     cfg->Write(_T("/browser_expand_ns"),             m_BrowserOptions.expandNS);
Index: resources/manifest.xml
===================================================================
--- resources/manifest.xml (revision 13610)
+++ resources/manifest.xml (working copy)
@@ -3,7 +3,7 @@
     <SdkVersion major="1" minor="10" release="0" />
     <Plugin name="CodeCompletion">
         <Value title="Code completion" />
-        <Value version="1.0.5 24/01/29" />
+        <Value version="1.0.6 25/02/7" />
         <Value description="This plugin provides a symbols browser for your projects and code-completion inside the editor.
 
 

10
Using Code::Blocks / Re: I gave for granted CB (Windows) was portable but...
« Last post by everSome on February 07, 2025, 07:03:06 pm »
While I do not have any experience is using Code::Blocks on non-Windows 10 platforms, configuration data can be some what confusing. I ran into a problem a year or so ago in starting up Code::Blocks. At the time I had more than one nightly full version with all its contributed plugins on my computer at the same time. Obviously with each version contained within a different Windows folder. All of  sudden the SpellChecker.dll failled to initialize on bootup because it could not find its .svg file. It turned out that in stepping through code I had inadvertently invoked the SpellChecker. Doing so had caused Code::Blocks to save what it deamed as appropriate into some files within my C:\Users\YOURNAME\AppData\Roaming\CodeBlocks folder. It turned out it was trying to find that .svg file in an old Code::Blocks folder that predated the switch over to using .svg images and had finally deleted it! I can understand maybe copying dictionary and thesaurus data into AppData, but not the location of where to find SpellChecker's .svg file during Code::Blocks initialization. Good luck.
Pages: [1] 2 3 4 5 6 ... 10