vs 2013 integration - class view/code assist

Oliver Brinzing Oliver.Brinzing at gmx.de
Fri Aug 21 04:44:05 PDT 2015


Hi

> And to add to Markus's response, it'd be great to have patches that improve things. So feel free to submit your fixes.

i think i have a small patch for vs 2013 ide integration - maybe someone can verify?

if one starts vs 2013 the first time after running "/opt/lo/bin/make vs2013-ide-integration"
vs complains about duplicate projects. altogether there are 2246 projects (lo 5.0.1).

i had a look into "LibreOffice.sln" and found, that a lot of projects have 6 entries (e.g. "Library 
swui").
only the one with the "ProjectSection" node seems to be the valid one, but vs always includes only 
the first.

i checked output from
(LC_MESSAGES=C C:/cygwin/opt/lo/bin/make cmd="C:/cygwin/opt/lo/bin/make -npf Makefile.gbuild all" 
cmd || true)
and found 276 entries for "Library_swui", distributed over 6 different entries inside the 150 mb file.

# makefile (from 'D:/sources/core/sw/Library_swui.mk', line 20)
# makefile (from 'D:/sources/core/sw/Library_swui.mk', line 30)
# makefile (from 'D:/sources/core/sw/Library_swui.mk', line 41)
# makefile (from 'D:/sources/core/sw/Library_swui.mk', line 49)
# makefile (from 'D:/sources/core/sw/Library_swui.mk', line 77)
# makefile (from 'D:/sources/core/sw/Library_swui.mk', line 160)

now i checked "/bin/gbuild-to-ide":

"GbuildParser._parse_hash(self, line, state)" appends 2246 libname/exename, even if it's value is 
"None".
adding "if libname != None:" /  "if exename != None:" generates only 340 project entries:

[...]
def _parse_hash(self, line, state):
         libmatch = GbuildParser.libpattern.match(line)
         if libmatch:
             libname = self.libnames.get(state.ilib, None)
             if libname != None:
                 print('libname: %s' % libname, end='\n')
                 self.libs.append(
                     GbuildLib(libmatch.group(2), libname, libmatch.group(1),
                               state.include, state.include_sys, state.defs, state.cxxobjects,
                               state.cxxflags, state.linked_libs))
                 state = GbuildParserState()
                 return state
         exematch = GbuildParser.exepattern.match(line)
         if exematch:
             exename = self.exenames.get(state.target, None)
             if exename != None:
                 print('exename: %s' % exename, end='\n')
                 self.exes.append(
                     GbuildExe(exematch.group(2), exename, exematch.group(1),
                               state.include, state.include_sys, state.defs, state.cxxobjects,
                               state.cxxflags, state.linked_libs))
                 state = GbuildParserState()
                 return state
[..]

vs now complains only about 3 duplicate exe projects (soffice_bin, unopkg_com, unopkg_bin).

but projects "sw", "swui", "sc" and others have now class view and code assist :-)


Regards
Oliver




More information about the LibreOffice mailing list