Comments (41)
I fear that for tuning autocompletion, it will done after the next release.
;-(
from ideu.
No problemo. The issue can wait patiently
from ideu.
So ready to publish a new release?
from ideu.
Even, maybe for this release, we can disable insert/append code while 2xclick.
Imho, code completion should be revised and re-thinked.
from ideu.
So ready to publish a new release?
I wait for your green light.
from ideu.
Hmm I think we forgot this issue:
mse-org/mseide-msegui#9
I also just found a tiny thing:
#33
from ideu.
Hmm I think we forgot this issue:
mse-org/mseide-msegui#9
Huh, was it not solved?
Of course if you need a .prj
fully compatible with MSEide
, you should use, as explained, for target name: myfilename${EXEEXT}
This will work for both MSEide
and ideU
.
And for people that does poly-compilation with ideU
, they know how to tune project-options for poly-compilation.
from ideu.
Do not forget that a .prj
saved by ideU has extended info that will be ignored by MSEide.
For example MSEide has options M B 1 2 3 4
.
IdeU has options M B 1 2 3 4 5 6 7 8 9 0
.
When you load a .prj
with MSEide, options 5 6 7 8 9 0
are ignored.
The same for extension, MSEide has only one extension macro (${EXEEXT}
), ideU has 12 macros + ${EXEEXT}
.
Do you have problem to compile ideU.prj
with MSEide from last commits?
It uses ideU${EXEEXT}
as target name.
from ideu.
Not from MSEide but from ideU. With the following config:
I get the filename "demo.exe.exe"
from ideu.
Yes, of course because you added ${EXEEXT}
in the target file name.
For shared-project that must be MSEide compatible, for example using ideU${EXEEXT} , I set the exe extension like this:
from ideu.
Ooops, I will do for ideU
, thanks to note it.
Done in commit 40b1ac9
from ideu.
Hmm there may be a misunderstanding.
What I am talking about is that if there is already ${EXEEXT} in the end of the target file name, it would help not to append yet another extension.
To get the output file name that would be for example in pseudo-code:
function GetOutputFilename: string;
var
fixedTargetFile, extension: string;
begin
fixedTargetFile := Config.TargetFile;
if not UpperCase(fixedTargetFile).EndsWith('${EXEEXT}') then
AppendStr(fixedTargetFile, '${EXEEXT}');
if Config.MakeExtension = '(Default)' then
extension := GlobalConfig.EXEEXT
else
extension := Config.MakeExtension;
result := StringReplace(fixedTargetFile, '${EXEEXT}', extension, []);
end;
from ideu.
Yes, I perfectly understood what you explained.
What can be done (maybe) in pseudo code:
if not UpperCase(fixedTargetFile).EndsWith('${EXEEXT}') then
AppendStr(fixedTargetFile,exeext[NumofOption]);
from ideu.
Hum, if we follow your idea, it must be done not only for EndsWith('${EXEEXT}')
but also for any extension added in the targetfile name.
For example, if you do:
MyTargetfilename := 'myprog.exe'
, it should also forget the exeext[NumofOption]
from ideu.
if not UpperCase(fixedTargetFile).EndsWith('${EXEEXT}') then
AppendStr(fixedTargetFile,exeext[NumofOption]);
Yes that would give some compatibility.
Then you need to remove ${EXEEXT} in "target file" to customize the extension, so that won't be compatible with MSEide anymore once you use this feature. Right?
from ideu.
Hum, if we follow your idea, it must be done not only for
EndsWith('${EXEEXT}')
but also for any extension added in the targetfile name.For example, if you do:
MyTargetfilename := 'myprog.exe'
, it should also forget theexeext[NumofOption]
That's a good point.
Maybe to avoid this problem, when the Default extension is chosen, just do like MSEide.
from ideu.
Maybe to avoid this problem, when the Default extension is chosen, just do like MSEide.
You know, the engine is already open, my hands full of grease, I will add the simple
if (pos('${EXEEXT}',uppercase(targetfilename)) > 0) or (pos('.',targetfilename) > 0) then dontaddextension;
from ideu.
Hmm well but if someone wants to add a dot in the filename?
Like MyProgram.v2.exe?
Though that's not essential. But when you say "donaddextension", would it still replace ${EXEEXT} with the custom extension?
from ideu.
OK, could you try with last commit dbc1212 ?
Like MyProgram.v2.exe?
And, no problems, I do not see the problem.
from ideu.
would it still replace ${EXEEXT}
Of course.
from ideu.
I understand what you did. At least that allows to keep the compatibility.
would it still replace ${EXEEXT}
Of course.
Well no it won't replace by the custom extension selected in the Exe extension tab. But that's ok I guess because if you start to customize the extensions then probably your project won't be compatible with MSEide anyway.
from ideu.
I tested it works. Thanks
from ideu.
Well no it won't replace by the custom extension selected in the Exe extension tab.
OK, in last commit 409cfd3 there is that hint:
from ideu.
Ok.
from ideu.
Note that the macro ${EXEEXT}
is considered as a extension, like .exe
.
from ideu.
MyProgram.v2.exe
You may try, it will work.
from ideu.
Yes but I was thinking in "target file" to have "MyProgram.v2" and then to select .exe in the extension list.
from ideu.
Ha, hum, ok, maybe a new check-box should be added "Add always extension"?
from ideu.
Hmmmm...
Or my previous suggestion (simplified):
- if Default extension is selected, do as MSEide: replace ${EXEEXT} by global extension
- otherwise remove ${EXEEXT} and add selected custom extension
from ideu.
if Default extension is selected
You mean in Tab "Exe Extension" ?
do as MSEide: replace ${EXEEXT} by global extension
Hmmmm, so first look was selected in tab and then do the check...
Re-hmmmmm, let me think about it.
from ideu.
OK, it is late, but imho, this should work too:
First delete any ${EXEEXT} in target file name.
int1 := system.pos('${EXEEXT}',uppercase(targetfile));
if int1 > 0 then targetfile := system.copy(targetfile,0,int1);
Then do as usual, use the selected extension....
I did commit this in 5e6f44a, what do you think?
from ideu.
OK, recommitted, this is the good one : 73bae4f
from ideu.
Hmm the code is not very readable. Can you use meaningful variable names instead of int2
, int3
, int4
etc. ?
Also seems that the code is duplicated in projectoptionsform.pas and make.pas. Is it possible to put that in one function?
from ideu.
Also seems that the code is duplicated in projectoptionsform.pas and make.pas. Is it possible to put that in one function?
No, it is not the same function, one is to define the target file, the other is to create the compiler command line.
from ideu.
Hmm the code is not very readable. Can you use meaningful variable names instead of int2, int3, int4 etc. ?
Done in commit 1171ad4
from ideu.
Great. I tested it that's very good now.
I guess you can publish it
from ideu.
OK, many, many thanks for all your help and lucidity.
There is some few things to tune before release but imho, it is nearly ready.
I will do it next week because I want to test it deep on each OS before to post the executable.
Have a perfect Sunday.
Fre;D
from ideu.
If I have the following code:
procedure tmainfo.formpaint(const Sender: twidget; const acanvas: tcanvas); begin acanvas.fill
Yes, it should show the list.
I fear that this issue could be fixed only by a class-guru.
;-)
from ideu.
Hmm where will we find that?
from ideu.
Afaik in sourceupdate.pas
, function composeprocedureheader
....
https://github.com/fredvs/ideU/blob/master/src/sourceupdate.pas
from ideu.
No I was talking about the guru
from ideu.
Related Issues (20)
- Autocompletion not inserting code HOT 50
- Installation instructions HOT 7
- Forgets the option "No confirmation to delete row" HOT 2
- Changing category in procedure list HOT 7
- Selecting multiple extensions in Make HOT 8
- Error Code 3 on new mse project HOT 5
- Add new language? HOT 1
- UI-tabs look werid at corners HOT 2
- Filling for the selection HOT 4
- Some commands must be disabled when no editor-window is opened HOT 1
- Can't compile any project on Windows HOT 5
- How to enlarge the UI fonts? HOT 1
- How to change the editor's font? HOT 1
- Add console application project support HOT 1
- How to dock everything into just one window? HOT 1
- What is the different between Project and Edited? HOT 1
- MSEGUI vs FPGUI? HOT 1
- Find users outside of Free Pascal? HOT 1
- Wrong form shown when opening project HOT 17
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ideu.