I've isolated a syntax error down to one simple addition of an inline IF function.
If I comment out Block B and uncomment A, it compiles fine and renders as expected. If all I do is comment out Block A and uncomment Block B, Mavensmate won't let me compile and throws this error:
Result: [COMPILE FAILED]: (RevenueSchedule) Syntax error. Missing ')' (Line: 1, Column: -1)
Block A:
<apex:inputText id="revAmt"
rendered="{!IF(isLocked == false,'true','false')}"
value="{!sched.revenue}"
styleClass="amountField"
onchange="updateTotals('{!revSched.lineItem.id}');" />
Block B:
<apex:inputText id="revAmt"
rendered="{!IF(isLocked == false,'true','false')}"
value="{!IF(revSched.scheduleType == 'L',revSched.totalRevenue,sched.revenue)}"
styleClass="amountField"
onchange="updateTotals('{!revSched.lineItem.id}');" />
As you can see, they are identical besides the addition of the IF function to block B. That's the only reason I haven't definitively concluded that the syntax error lies elsewhere on the page. Can anyone see anything definitely wrong syntactically with anything in Block B, or any reason Block A would compile but not B?
{!IF(NOT(isLocked),true,false)}
; also I use=
in formulas in lieu of==
as merge field formulas don;t follow apex rulesRevenueSchedule
the name of the VF page? Sometimes I end up successively commenting out portions of the page in order to look for the issue; if you think this is MavensMate and not the VF compiler, try compiling in Developer Console