This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Try all distribution of NetBeans development build. The created php files and php file templates has header file icon.
See issue #153988 and screenshot assigned to this issue.
Please, provide file name and it's content. Thanks
Why you mark it as incomplete. Just try to create a php file in NetBeans all. Even the templates in new file wizard has header icons.
incomplete because you do not provide us file names and file contents that detected as header but in real php.
We have conflict in MIME resolver: <pattern value="#include" range="128"/> - for h <pattern value="<?php" range="255"/> - for php
Created attachment 74805 [details] Screenshot of the new file wizard
it seem you should add template file extension to avoid mime conflict
Look through the php templates in php.project/src/org/netbeans/modules/php/project/ui/resources .
Radek, can we use different extension for our templates? I know that you did some hacks for our templates due to the possibility to change extensions in new file wizard.
template does not has extension: <file name="EmptyPHP" url="nbresloc:/org/netbeans/modules/php/project/ui/resources/emptyPHP.php">
It seems NB code problem. MIME resolver should be more sophisticated. It should differ patterns: #include and <#include Or prioritizing MIME resolvers.
I would like wait on Radek's opinion. But I think that the current state (no extensions for the templates) it's targeted, because than it allows to change the extension in wizard. Radek, is it true? The mime reosolvers can be prioritize according to the position in default fs. The php resolvers has: <attr name="position" intvalue="282"/>. What is the position for c++?
Yes, Peter is right, no extension for php templates just to be able create new files with various extensions AFAIK. Empty extension seems to be valid. Regression since 6.5? (#142760 declarative mime resolver improvements && its application - seems to be culprit but I didn't investigate it yet).
The position of C++ no-extensions resolver is 4yo, that's why it looks like core problem
sorry, position is 470
See C/C++ solution for template with different extensions. It does not require template file without extension
Please, evaluate. Looks that nothing wrong with PHP or C++ declarative resolvers handling files without extensions
One more note. If the problem is also in #include, then probably there is not affected only php. Because the <#include is not php specific, but FreeMarker directive. This scripting engine is used by many templates.
does regexp support "excluding" '<' symbol? Our original code (in non declarative resolver) was to check #include in the beginning of the line after possible several whitespaces, so we need something like: "^(\s)?#include" pattern
in fact in all known C++ headers without extension I've never seen whitespace before #include directive, so minimally, please, support "^#include" thanks
php.project resolver has 99000 position. That's why the c++ resolver precedes the php.project resolver. MIME-resolver#pattern doesn't support regular expressions because of performance reasons. But you can add a negative condition and not resolve FreeMaker templates with <#include directive. http://hg.netbeans.org/core-main/rev/c33b43993389
Integrated into 'main-golden', will be available in build *200812120201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/c33b43993389 User: Jiri Skrivanek <jskrivanek@netbeans.org> Log: #155128 - Do not resolve FreeMaker templates with <#include directive.
Jiri, are you sure that your fix is correct? I have the following exception on IDE startup (+ some failed cnd tests) INFO [org.netbeans.modules.openide.filesystems.declmime.DefaultParser] While parsing: MultiFileObject@166cb16[Services/MIMEResolver/cnd-mime-resolver-content-based.xml] While parsing: MultiFileObject@166cb16[Services/MIMEResolver/cnd-mime-resolver-content-based.xml] Caused: org.xml.sax.SAXParseException: The value of attribute "value" associated with an element type "null" must not contain the '<' character. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:388) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1411) at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanAttributeValue(XMLScanner.java:932) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanAttribute(XMLDocumentFragmentScannerImpl.java:1539) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1316) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2747) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) [catch] at org.netbeans.modules.openide.filesystems.declmime.DefaultParser.parse(DefaultParser.java:136) at org.netbeans.modules.openide.filesystems.declmime.DefaultParser.parse(DefaultParser.java:184) at org.netbeans.modules.openide.filesystems.declmime.MIMEResolverImpl$Impl.parseDesc(MIMEResolverImpl.java:203) at org.netbeans.modules.openide.filesystems.declmime.MIMEResolverImpl$Impl.init(MIMEResolverImpl.java:194) at org.netbeans.modules.openide.filesystems.declmime.MIMEResolverImpl$Impl.findMIMEType(MIMEResolverImpl.java:169) at org.openide.filesystems.MIMESupport$CachedFileObject.resolveMIME(MIMESupport.java:331) at org.openide.filesystems.MIMESupport$CachedFileObject.getMIMEType(MIMESupport.java:283) at org.openide.filesystems.MIMESupport.findMIMEType(MIMESupport.java:125) at org.openide.filesystems.FileUtil.getMIMETypeOrDefault(FileUtil.java:1138) at org.openide.filesystems.FileObject.getMIMEType(FileObject.java:489) at org.openide.filesystems.MultiFileObject.getMIMEType(MultiFileObject.java:580) at org.openide.filesystems.MultiFileObject.getMIMEType(MultiFileObject.java:580) at org.openide.loaders.DataLoaderPool.allLoaders(DataLoaderPool.java:328) at org.openide.loaders.DataLoaderPool.findDataObject(DataLoaderPool.java:526) at org.openide.loaders.FolderList.createBoth(FolderList.java:762) at org.openide.loaders.FolderList.getObjects(FolderList.java:562) at org.openide.loaders.FolderList.access$300(FolderList.java:74) at org.openide.loaders.FolderList$ListTask.computeResult(FolderList.java:955) at org.openide.loaders.FolderList$ListTask.run(FolderList.java:933) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:573) at org.openide.util.RequestProcessor$Processor.doEvaluate(RequestProcessor.java:1050) at org.openide.util.RequestProcessor$Task.waitFinished(RequestProcessor.java:738) at org.openide.loaders.FolderInstance.waitFinished(FolderInstance.java:316) at org.openide.loaders.FolderLookup$ProxyLkp.beforeLookup(FolderLookup.java:442) at org.openide.util.lookup.ProxyLookup$R.myBeforeLookup(ProxyLookup.java:645) at org.openide.util.lookup.ProxyLookup$R.beforeLookup(ProxyLookup.java:664) at org.openide.util.lookup.ProxyLookup$R.myBeforeLookup(ProxyLookup.java:653) at org.openide.util.lookup.ProxyLookup$R.computeResult(ProxyLookup.java:518) at org.openide.util.lookup.ProxyLookup$R.allInstances(ProxyLookup.java:489) at org.openide.util.Lookup.lookupAll(Lookup.java:245) at org.openide.loaders.DataLoaderPool$1MimeEnum.delegate(DataLoaderPool.java:313) at org.openide.loaders.DataLoaderPool$1MimeEnum.hasMoreElements(DataLoaderPool.java:321) at org.openide.util.Enumerations$SeqEn.ensureCurrent(Enumerations.java:325) at org.openide.util.Enumerations$SeqEn.hasMoreElements(Enumerations.java:340) at org.openide.util.Enumerations$SeqEn.ensureCurrent(Enumerations.java:325) at org.openide.util.Enumerations$SeqEn.hasMoreElements(Enumerations.java:340) at org.openide.util.Enumerations$SeqEn.ensureCurrent(Enumerations.java:325) at org.openide.util.Enumerations$SeqEn.hasMoreElements(Enumerations.java:340) at org.openide.loaders.DataLoaderPool.findDataObject(DataLoaderPool.java:527) at org.openide.loaders.FolderList.createBoth(FolderList.java:762) at org.openide.loaders.FolderList.getObjects(FolderList.java:562) at org.openide.loaders.FolderList.access$300(FolderList.java:74) at org.openide.loaders.FolderList$ListTask.computeResult(FolderList.java:955) at org.openide.loaders.FolderList$ListTask.run(FolderList.java:933) at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:573) at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1005) ALL [null]: While parsing: MultiFileObject@166cb16[Services/MIMEResolver/cnd-mime-resolver-content-based.xml] CONFIG [null]: Parse error in file nbfs://nbhost/SystemFileSystem/Services/MIMEResolver/cnd-mime-resolver-content-based.xml line 49 column 25 (PUBLIC null)
well, all Header files without extensions are no more recognized...
My bad. It seemed to work but I didn't pay attention to the console. Thank you for catching this. http://hg.netbeans.org/core-main/rev/0f0e4a4c0404
Integrated into 'main-golden', will be available in build *200812160201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/0f0e4a4c0404 User: Jiri Skrivanek <jskrivanek@netbeans.org> Log: #155128 - escape illegal character.
Integrated into 'main-golden', will be available in build *200812180201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/206a2ace6933 User: Vladimir Voskresensky <vv159170@netbeans.org> Log: fixed IZ#155128: The c++ support consumes php files in NetBeans all - user "<" instead of "<"